PIL: ошибка загрузки DLL: не удалось найти указанную процедуру


Я начал работать с изображениями на Python и хотел начать использовать PIL (Pillow). Чтобы установить его, я побежал pip install Pillow. При установке PIL ранее не устанавливался. Я также попытался удалить его и переустановить, а также использовать pip3 install Pillow.

Когда я запускаю его в Python, моя первая строка:

File "C:Program FilesPython36libsite-packagesPILImage.py", line 56, in <module>
from . import _imaging as core
ImportError: DLL load failed: The specified procedure could not be found.

Я проверил каталог и файл _imaging.cp36-win_amd64.pyd присутствует в папке PIL.

Почему это происходит, если есть необходимая DLL? Как я могу это сделать? исправить это?

7 27

7 ответов:

У меня была такая же проблема с Python 3.6. Я просто избежал этой проблемы, удалив pillow (4.1.0), а затем установив более старую версию pillow (4.0.0). Кажется, он работает нормально со старой версией.

Как и в ответе Шона, мне пришлось удалить (Я использую Anaconda Python 3.6, кстати) с помощью

conda uninstall pillow

Я попробовал это с PIL, но такого пакета не было. Удаление pillow также означало удаление зависящих от него пакетов, в моем случае " anaconda-navigator "и"scikit-image". После того, как я переустановил Pillow 4.0.0 с

 conda install pillow=4.0.0

И проверил его с помощью

python -c "from PIL import Image"

Который, в случае успеха, вы не увидите сообщение об ошибке, я переустановил пакеты, которые были удалены вместе с подушкой 4.1.0.

conda install anaconda-navigator
conda install scikit-image

Эта проблема также исправлена путем обновления Python до 3.6.1, в соответствии сэтим обсуждением GitHub .

Разница в том, что Pillow 4.1.0 был построен с Python 3.6.1, а Pillow 4.0.0 был построен с Python 3.6.0.

По-видимому, PYTHON36.DLL из Python 3.6.0 отсутствуют функции (PySlice_AdjustIndices и PySlice_Unpack), которые используются при построении с Python 3.6.1.

Решение заключается в обновлении до Python 3.6.1.

Есть проблема в самом Python, которая означает, что двоичные колеса, построенные с использованием Python 3.6.1 (например, подушка 4.1.0), не будут устанавливаться на Python 3.6.0.

Это повлияло на ряд библиотек Python.

Однако есть новый выпуск Pillow 4.1.1, который работает вокруг этого, поэтому теперь вы можете обновить Pillow 4.1.1 и использовать его как с Python 3.6.0, так и с 3.6.1.

Еще информация:

У меня была та же проблема с anaconda 5.0.1, используя его с caffe на windows 10. я только что сделал

conda install PIL

Это сработало для меня.

Это работает для меня, используя win10 и py 3.6. Просто удалите подушку 4.1.0 pip3 удалить подушку Затем установите подушку 4.0.0 pip3 install Pillow==4.0.0

Если вы используете Anaconda, попробуйте

conda uninstall pillow а потом pip install pillow

Столкнулся с этой проблемой во время работы над Caffe2 на Windows 10 (Anaconda 4.5), и это сработало для меня. Вот сообщение github по этому вопросу.