Как исправить Модуль _imaging C не установлен Django/WSGI/Apache

Я запускаю свои тестовые сайты на своем домашнем компьютере, который, к сожалению, использует Windows. Теперь я пытаюсь сделать миниатюру изображения, но получаю сообщение об ошибке:

The _imaging C module is not installed

Но только когда я пытаюсь получить доступ к представлению через сервер Apache. Миниатюры Runserver в порядке. Я установил специальные предварительно скомпилированные двоичные файлы, на которые ссылались другие, но мне не повезло.

Любая идея, почему это работает в runserver/shell, но не в Apache?


person leech    schedule 18.06.2011    source источник
comment
Если кто-то еще столкнется с этой проблемой, когда ваш веб-сервер не может загрузить модуль _imaging.pyd... но ваша оболочка и сервер запуска могут. Если вы пытаетесь создать миниатюру, как я, есть простое решение (и, возможно, лучшее для производительности в любом случае) - Предварительно визуализировать миниатюры в оболочке.   -  person leech    schedule 19.06.2011
comment
да. Я нашел решение: stackoverflow.com/questions/5352968/   -  person trd    schedule 22.08.2011


Ответы (3)


Вам нужно указать путь к PIL и другим сайтам-пакетам в вашем пути в файле конфигурации .wsgi. Итак, сначала вам нужно найти расположение пакетов вашего сайта (например: /usr/local/lib/python2.6/site-packages/), а затем добавить его в ваш sys.path в файле .wsgi. Пример WSGI:

import os, sys
sys.path.append('/home/www/sites/mysite', '/usr/local/lib/python2.6/site-packages/')
os.environ['DJANGO_SETTINGS_MODULE'] = 'mysite.settings'

import django.core.handlers.wsgi

application = django.core.handlers.wsgi.WSGIHandler()
person fijter    schedule 18.06.2011
comment
Да, пути установлены, все остальное в пакетах сайтов загружается хорошо (например, mysql). просто не тот _imaging.pyd, я даже поместил папку DLL в путь, не доволен :( - person leech; 19.06.2011

У меня была такая же проблема с mod_wsgi на apache на Windows Server 2008. PIL нормально загружался из моего virtualenv, но не загружался под mod_wsgi, даже с правильной версией msvcr90.dll в папке с файлами .pyd.

Ответ для меня связан с WINDOWS SXS HELL и патчем, созданным планировщиками.

Мне пришлось отредактировать свой distutils\msvc9compiler.py и закомментировать одну строку (я использую Python 2.7, он использовал 2.6.x), удалить папку сборки и пересобрать PIL, и все заработало.

http://groups.google.com/group/isapi_wsgi-dev/browse_thread/thread/03fa2b485ec2281d?pli=1

Я не знаю, кто он, но я очень благодарен.

person boatcoder    schedule 25.02.2012

1. вам следует проверить _imaging.pyc или _imaging.dll или _imaging.so на вашем компьютере.

2.Существовать!Теперь попробуйте import Image

3.Правильно! попробуй import _imaging

если ошибка, проверьте, является ли ваш компьютер 32-битным или 64-битным.

если ваш компьютер 32-битный, вы должны установить какой-нибудь пакет, например PIL-1.1.7.win32-py2.5 http://effbot.org/downloads/PIL-1.1.7.win32-py2.5.exe

если ваш компьютер 64-битный, вы должны установить какой-нибудь пакет, такой как PIL-1.1.7.win-amd64-py2.5, который вы можете найти здесь: http://www.lfd.uci.edu/~gohlke/pythonlibs/

4. Установите нужный пакет на site-packeges, он будет работать

УДАЧИ!

person tdolydong    schedule 31.07.2013