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

Это поможет вам решить проблему.