Django - нет модуля с именем PIL - PullRequest
6 голосов
/ 05 июля 2011

Мне нужно использовать ImageField в моих моделях, а PIL , похоже, не установлен:

>>> from PIL import Image
Traceback (most recent call last):
  File "<console>", line 1, in <module>
ImportError: No module named PIL

Однако я вижу python-imaging , установленный в Synaptic . Когда я пытаюсь легко установить его, я получаю:

$ sudo easy_install-2.7 PIL
[sudo] password for glide: 
Searching for PIL
Reading http://pypi.python.org/simple/PIL/
Reading http://www.pythonware.com/products/pil
Reading http://effbot.org/zone/pil-changes-115.htm
Reading http://effbot.org/downloads/#Imaging
Best match: PIL 1.1.7
Downloading http://effbot.org/media/downloads/PIL-1.1.7.tar.gz
Processing PIL-1.1.7.tar.gz
Running PIL-1.1.7/setup.py -q bdist_egg --dist-dir /tmp/easy_install-HvRSQr/PIL-1.1.7/egg-dist-tmp-nDJHmU
WARNING: '' not a valid package name; please use only.-separated package names in setup.py
_imaging.c:3017: warning: initialization from incompatible pointer type
_imaging.c:3077: warning: initialization from incompatible pointer type
libImaging/Quant.c: In function ‘rehash_collide’:
libImaging/Quant.c:154: warning: cast to pointer from integer of different size
--------------------------------------------------------------------
PIL 1.1.7 SETUP SUMMARY
--------------------------------------------------------------------
version       1.1.7
platform      linux2 2.7.1 (r271:86832, May  2 2011, 14:22:06)
              [GCC 4.4.3]
--------------------------------------------------------------------
*** TKINTER support not available
*** JPEG support not available
--- ZLIB (PNG/ZIP) support available
*** FREETYPE2 support not available
*** LITTLECMS support not available
--------------------------------------------------------------------
To add a missing option, make sure you have the required
library, and set the corresponding ROOT variable in the
setup.py script.

To check the build, run the selftest.py script.
zip_safe flag not set; analyzing archive contents...
Image: module references __file__
Adding PIL 1.1.7 to easy-install.pth file
Installing pilconvert.py script to /usr/local/bin
Installing pilprint.py script to /usr/local/bin
Installing pildriver.py script to /usr/local/bin
Installing pilfont.py script to /usr/local/bin
Installing pilfile.py script to /usr/local/bin

Installed /usr/local/lib/python2.7/site-packages/PIL-1.1.7-py2.7-linux-x86_64.egg
Processing dependencies for PIL
Finished processing dependencies for PIL

И это все еще невозможно использовать. Нужно ли делать что-то еще, чтобы использовать тип поля ImageField?

Ответы [ 5 ]

6 голосов
/ 22 июля 2011

Самуэль Маттиуццо дал мне ответ:

Вы пробовали импортировать изображение вместо импорта из изображения PIL?иногда это решает проблему

1 голос
/ 11 апреля 2012

Также иногда это может не работать:

pip install pil 

Проверьте это: Ошибка gcc при попытке установить PIL в Python2.6 virtualenv

0 голосов
/ 13 марта 2014

Проблема возникает из-за того, как менеджеры пакетов настраивают (.py) PIL:

https://mail.python.org/pipermail/image-sig/2010-August/006480.html

Возможные решения:

  • Переименование EGG в "PIL". "
  • Настройте свой код в соответствии с установленным пакетом (это не всегда возможно.)
  • Выполните взлом, как это сделал Джейми (в другом месте на этой странице.)
  • Используйте другой пакетдля установки.
  • Вручную настройте setup.py для вашей установки.

«Переименовать EGG» не описывается в других разделах этой страницы, поэтому я опишу его здесь:

cd /usr/local/lib/python2.6/site-packages/
mv PIL-1.1.7-py2.6-linux-i686.egg PIL

Это может быть удивительно, но на самом деле это работает во многих ситуациях.

0 голосов
/ 05 июля 2012

Я знаю, что это старый вопрос, на который уже дан ответ, но я нашел другой способ решить его, который исправил проблемы на моем сервере. Пакет PIL был установлен easy_install и сохранен в «/usr/local/lib/python2.6/site-packages/PIL-1.1.7-py2.6-linux-x86_64.egg». Глядя на его содержание, приведено:

ArgImagePlugin.py        FpxImagePlugin.py        ImageColor.pyc    ImagePalette.py     _imagingmath.so        PaletteFile.pyc        SunImagePlugin.py
ArgImagePlugin.pyc       FpxImagePlugin.pyc       ImageDraw2.py     ImagePalette.pyc    _imaging.py            PalmImagePlugin.py     SunImagePlugin.pyc
BdfFontFile.py           GbrImagePlugin.py        ImageDraw2.pyc    ImagePath.py        _imaging.pyc           PalmImagePlugin.pyc    TarIO.py
BdfFontFile.pyc          GbrImagePlugin.pyc       ImageDraw.py      ImagePath.pyc       _imaging.so            PcdImagePlugin.py      TarIO.pyc
BmpImagePlugin.py        GdImageFile.py           ImageDraw.pyc     Image.py            ImImagePlugin.py       PcdImagePlugin.pyc     TgaImagePlugin.py
BmpImagePlugin.pyc       GdImageFile.pyc          ImageEnhance.py   Image.pyc           ImImagePlugin.pyc      PcfFontFile.py         TgaImagePlugin.pyc
BufrStubImagePlugin.py   GifImagePlugin.py        ImageEnhance.pyc  ImageQt.py          ImtImagePlugin.py      PcfFontFile.pyc        TiffImagePlugin.py
BufrStubImagePlugin.pyc  GifImagePlugin.pyc       ImageFileIO.py    ImageQt.pyc         ImtImagePlugin.pyc     PcxImagePlugin.py      TiffImagePlugin.pyc
ContainerIO.py           GimpGradientFile.py      ImageFileIO.pyc   ImageSequence.py    __init__.py            PcxImagePlugin.pyc     TiffTags.py
ContainerIO.pyc          GimpGradientFile.pyc     ImageFile.py      ImageSequence.pyc   __init__.pyc           PdfImagePlugin.py      TiffTags.pyc
CurImagePlugin.py        GimpPaletteFile.py       ImageFile.pyc     ImageShow.py        IptcImagePlugin.py     PdfImagePlugin.pyc     WalImageFile.py
CurImagePlugin.pyc       GimpPaletteFile.pyc      ImageFilter.py    ImageShow.pyc       IptcImagePlugin.pyc    PixarImagePlugin.py    WalImageFile.pyc
DcxImagePlugin.py        GribStubImagePlugin.py   ImageFilter.pyc   ImageStat.py        JpegImagePlugin.py     PixarImagePlugin.pyc   WmfImagePlugin.py
DcxImagePlugin.pyc       GribStubImagePlugin.pyc  ImageFont.py      ImageStat.pyc       JpegImagePlugin.pyc    PngImagePlugin.py      WmfImagePlugin.pyc
EGG-INFO                 Hdf5StubImagePlugin.py   ImageFont.pyc     ImageTk.py          McIdasImagePlugin.py   PngImagePlugin.pyc     XbmImagePlugin.py
EpsImagePlugin.py        Hdf5StubImagePlugin.pyc  ImageGL.py        ImageTk.pyc         McIdasImagePlugin.pyc  PpmImagePlugin.py      XbmImagePlugin.pyc
EpsImagePlugin.pyc       IcnsImagePlugin.py       ImageGL.pyc       ImageTransform.py   MicImagePlugin.py      PpmImagePlugin.pyc     XpmImagePlugin.py
ExifTags.py              IcnsImagePlugin.pyc      ImageGrab.py      ImageTransform.pyc  MicImagePlugin.pyc     PsdImagePlugin.py      XpmImagePlugin.pyc
ExifTags.pyc             IcoImagePlugin.py        ImageGrab.pyc     ImageWin.py         MpegImagePlugin.py     PsdImagePlugin.pyc     XVThumbImagePlugin.py
FitsStubImagePlugin.py   IcoImagePlugin.pyc       ImageMath.py      ImageWin.pyc        MpegImagePlugin.pyc    PSDraw.py              XVThumbImagePlugin.pyc
FitsStubImagePlugin.pyc  ImageChops.py            ImageMath.pyc     _imagingft.py       MspImagePlugin.py      PSDraw.pyc
FliImagePlugin.py        ImageChops.pyc           ImageMode.py      _imagingft.pyc      MspImagePlugin.pyc     SgiImagePlugin.py
FliImagePlugin.pyc       ImageCms.py              ImageMode.pyc     _imagingft.so       OleFileIO.py           SgiImagePlugin.pyc
FontFile.py              ImageCms.pyc             ImageOps.py       _imagingmath.py     OleFileIO.pyc          SpiderImagePlugin.py
FontFile.pyc             ImageColor.py            ImageOps.pyc      _imagingmath.pyc    PaletteFile.py         SpiderImagePlugin.pyc

Хорошо. Нет модуля PIL для импорта из. Итак, я сделал подвох. Сделал папку с именем PIL и скопировал в нее все эти файлы.

mkdir PIL
cp * PIL/

Итак, все стало работать нормально. Я думаю, что это проблема, в зависимости от того, какой пакет установки вы используете, он будет развернут по-разному. ;)

0 голосов
/ 05 июля 2011

Если ваш вопрос «почему поддержка JPEG, FREETYPE2 и т. Д. Недоступна?»,

PIL устанавливается с поддержкой пакетов, которые уже присутствуют в вашей системе во время установки PIL.

Для поддержки JPEG и FREETYPE установите следующие пакеты:

sudo aptitude install libjpeg libjpeg-dev
sudo aptitude install libfreetype6 libfreetype6-dev

Если вы только что установили его на OS X Lion и сторонняя библиотека lib не может from PIL import image, тогда вы можете просто выполнитьln -s PIL-OSX... PIL

...