PIL: ImportError: расширение _imaging было построено для другой версии подушки или PIL
Я получаю сообщение об ошибке:
---------------------------------------------------------------------------
ImportError Traceback (most recent call last)
<ipython-input-4-0f6709e38f49> in <module>()
----> 1 from PIL import Image
C:\Anaconda\lib\site-packages\PIL\Image.py in <module>()
61 from PIL import _imaging as core
62 if PILLOW_VERSION != getattr(core, 'PILLOW_VERSION', None):
---> 63 raise ImportError("The _imaging extension was built for another "
64 " version of Pillow or PIL")
65
ImportError: The _imaging extension was built for another version of Pillow or PIL
Всякий раз, когда я пытаюсь использовать библиотеку PIL. Я пытаюсь загрузить и работать с кучей .gif, и теперь я пытаюсь сделать следующее:
from PIL import Image
Попробуйте другой подход, используя scipy с помощью:
import scipy.ndimage as spnd
os.chdir('C:\\WeatherSink\\data\\')
spnd.imread('2014-11-03-0645.gif')
Сбой:
---------------------------------------------------------------------------
ImportError Traceback (most recent call last)
<ipython-input-3-23c383b79646> in <module>()
1 os.chdir('C:\\WeatherSink\\data\\')
----> 2 spnd.imread('2014-11-03-0645.gif')
C:\Anaconda\lib\site-packages\scipy\ndimage\io.pyc in imread(fname, flatten, mode)
36 from PIL import Image
37 except ImportError:
---> 38 raise ImportError("Could not import the Python Imaging Library (PIL)"
39 " required to load image files. Please refer to"
40 " http://pypi.python.org/pypi/PIL/ for installation"
ImportError: Could not import the Python Imaging Library (PIL) required to load image files. Please refer to http://pypi.python.org/pypi/PIL/ for installation instructions.
Первый подход помогает мне в отношении версий PIL. Я пытаюсь подражать getattr (...) и возвращает None. Поэтому я не удивлен, что это меньше, чем функционирование.
Но кто-нибудь знает, как "исправить" ошибки?
Я запускаю win7, управляя python2.7 через конду. Я попытался также удалить и переустановить пакеты без изменения вывода.
Помощь очень ценится.
Ответы
Ответ 1
Это только вопрос установки.
Сначала установите pip в вашей системе, если он не установлен. Он также доступен для Windows.
Обнови свой numpy, pip/подушку, scipy:
pip install -U numpy
pip install -U pil/pillow
pip install -U scipy
Лучший вариант для Windows - использовать анаконду.
Я думаю, что пипс уже установлен в Конде. Это решит проблему с версией вашей системы.
In [1]: from PIL import Image
In [2]: import scipy.ndimage as spnd
In [3]: x = spnd.imread('ppuf100X91.gif')
In [4]: print x
[[255 255 255 ..., 255 255 255]
[255 255 255 ..., 255 255 255]
[255 255 255 ..., 255 255 255]
...,
[255 255 255 ..., 255 255 255]
[255 255 255 ..., 255 255 255]
[255 255 255 ..., 255 255 255]]
Ответ 2
Это проблема в python 3.6. Отредактируйте файл: C:\Anaconda\lib\site-packages\PIL\Image.py
и измените код:
if PILLOW_VERSION != getattr(core, 'PILLOW_VERSION', None):
raise ImportError("The _imaging extension was built for another "
" version of Pillow or PIL")
изменить это на:
if core.PILLOW_VERSION != getattr(core, 'PILLOW_VERSION', None):
raise ImportError("The _imaging extension was built for another "
" version of Pillow or PIL")
Это решит проблему. С уважением
Ответ 3
Возможно, одна из ваших зависимостей требует, чтобы PIL и PIL были установлены после Pillow, вызывая конфликты в каталоге пакетов вашего сайта. Я предполагаю, что вы видите эту ошибку, потому что оператор импорта импортирует _imaging
из законной установки PIL, а не для установки Pillow.
У меня были проблемы в прошлом с конфликтующими пакетами, которые требуют либо PIL, либо Pillow. Подушка, конечно, предпочтительный пакет. Я бы посмотрел зависимости ваших пакетов. Если вы можете найти тот, который зависит от PIL, я бы представил запрос на растяжение, который изменяет зависимость от Pillow или даже может создать вашу собственную вилку с этим изменением. Для моей ситуации форкинг был вариантом, который я решил, поскольку проект, похоже, долгое время не занимался этим.
В конечном счете, вы хотите исключить любые зависимости от пакета PIL (поскольку он больше не активен) в пользу подушки.
Ответ 4
Эта проблема возникает из-за того, что пакет PIL/Python Python представляет собой Up или Down версию вашей системы и из-за этого возникает вопрос в вашей системе.
Попробуйте проверить эту команду:
sudo apt-get install python-PIL
Проверьте, установлен ли этот пакет или нет. Если он установлен, попробуйте удалить с помощью команды:
sudo apt-get remove python-PIL
Проверить, что это будет работать, чтобы удалить пакет PIL/pillow, удаляется из вашей системы.
И, наконец, эта команда поможет решить эту проблему:
sudo apt-get autoremove python-PIL
Затем переустановите пакет PIL/Pillow:
sudo apt-get install python-PIL
Это поможет вам решить проблему.