У меня установлена PIL (библиотека изображений Python).
Когда я запускаю Python:
import PIL
import Image
import _imaging
Я не получаю ошибок. Однако при запуске моего приложения оно вызывает
The _imaging C module not installed
У меня установлена PIL (библиотека изображений Python).
Когда я запускаю Python:
import PIL
import Image
import _imaging
Я не получаю ошибок. Однако при запуске моего приложения оно вызывает
The _imaging C module not installed
Я разместил этот ответ по ссылке, которую вы прислали (спасибо за это), но решил опубликовать и источник. Извините за тупой пост.
Я надеялся, что есть способ сделать это без перекомпиляции материала. Я использую virtualenv. Я обнаружил, что если я снес свою виртуальную установку env, а затем переустановил с помощью pip, Imaging снова начал работать. Эти шаги, похоже, сработали (обратите внимание, я использую OSX)
Не уверен, что это имело значение, но проверял, установлен ли jpeg
winesap:~ $ port installed | grep -i jpeg
jpeg @7_0
jpeg @8a_0 (active)
Убедитесь, что у меня установлен PIP
sudo port -v install py26-pip
Удалите старую виртуальную среду, которая у меня была, и создайте ее заново.
rm -rf ve
virtualenv –no-site-packages –distribute ve
. ./ve/bin/activate
Установите pil и django в виртуальную среду.
echo “pil” > requirements.pip
echo “django” >> requirements.pip
pip-2.6 install -E ./ve/ -r requirements.pip
Проверьте, работает ли импорт сейчас. Обратите внимание на отсутствие неприятной ошибки модуля C
python
>>import import ImageFont
>>
Надеюсь, это полезно.
В Windows удалите _imaging.pyd и _imagingft.pyd внутри C:\Python27. Оставьте все модули _imaging внутри папки C:\Python27\Lib\site-packages\PIL.
Меня устраивает.
Вот некоторые вещи, которые могут вам помочь, если from PIL import Image работает, а import _imaging не работает. Если Image тоже не работает, см. Примечание в конце.
В Ubuntu 13.04 (раринг) у меня была эта проблема. Получается, что Ubuntu устанавливает _imaging.so в место, которое не ожидает App Engine: /usr/lib/python2.7/dist-packages вместо /usr/lib/python2.7/dist-packages/PIL. Так что _imaging.so не было нигде в sys.path.
Вот несколько способов обойти это:
Поместите модули PIL C где-нибудь уже на пути:
Я заметил, что /path/to/google_appengine/lib/PIL-1.1.7 был в sys.path, но в моей установке этого каталога не было. Итак, я создал каталог и скопировал в него файлы .so, и все заработало. Вам придется делать это снова, каждый раз, когда вы обновляете SDK App Engine, но, по крайней мере, это не мешает коду, который вы разрабатываете.
Управление sys.path в main.py:
Этот код проверит, запущен ли сервер приложений разработки, и если да, то добавит правильный каталог к пути. Не проверено, но должно работать ;)
# Find _imaging.so and put its directory here.
# `locate _imaging.so` or `dpkg -L python-imaging`
PIL_PATH = '/usr/lib/pyshared/python2.7/'
PRODUCTION_MODE = not os.environ.get(
'SERVER_SOFTWARE', 'Development').startswith('Development')
if not PRODUCTION_MODE:
sys.path.insert(PIL_PATH)
Я предполагаю, что это может сделать вам доступным не только модули PIL, так что это внесет (еще больше) различий между разработкой и производством. Кроме того, этот метод включает в себя изменение исходного кода вашего приложения, что кажется плохим решением, если его разрабатывает более одного человека.
Примечание. Если import Image не работает, возможно, вы забыли добавить библиотеку PIL в свой app.yaml.
libraries:
- name: PIL
version: "latest"
Возможно, вам придется перезапустить dev_appserver.py после добавления этой библиотеки, чтобы изменения отразились, например, в. интерактивная консоль.
почему проблема существует с PIL 1.1.6? (только 1.1.7), разве что версия 1.1.6 не использует эти библиотеки?
PIL 1.1.6 также использует свою внутреннюю библиотеку C для ускорения работы.
Для Windows вы должны использовать предварительно скомпилированные пакеты. http://www.pythonware.com/products/pil/ предлагает двоичные файлы X86 Windows для версии 1.1. .7. Вы можете столкнуться с проблемой с бинарными файлами Windows 1.1.7. Библиотека FreeType C ссылается на отладочную CRT, которая доступна не на всех машинах. Вы можете легко исправить файл _imagingft.pyd с помощью шестнадцатеричного редактора.
У меня полностью отсутствовали файлы _imaging.* в папке lib/site-packages/PIL.
Скачал яйцо отсюда (правильный файл зависит от платформы):
https://pypi.python.org/pypi/Pillow/2.7.0
переименовал его из .egg в .zipand copied all the files in the folderPILthat start with_imagingto the folderlib/site-packages/PIL`.
.. Проблема решена
В Ubuntu мне помогла следующая команда (спасибо этот ответ на askubuntu):
sudo apt-get install libjpeg62:i386