В процессе написания скрипта Python, использующего PIL сегодня, я обнаружил, что у меня его нет на моей локальной машине (OS X 10.5.8, стандартная установка Python 2.5).
Поэтому я запускаю:
easy_install --prefix=/usr/local/python/ pil
, и он немного жалуется на то, что /usr/local/python/lib/python2.5/site-packages еще не существует, поэтому я создаю его, пробую еще раз и получаюэто:
СБОЙ ТЕСТА: /usr/local/python//lib/python2.5/site-packages НЕ поддерживает ошибку .pth файлов: неверный каталог установки или PYTHONPATH
Вы пытаетесь установить пакет в каталог, который не находится в PYTHONPATH и из которого Python не читает файлы «.pth».Указанный вами каталог установки (с помощью --install-dir, --prefix или параметра по умолчанию distutils):
/usr/local/python//lib/python2.5/site-packages
, а ваша переменная среды PYTHONPATH в настоящее время содержит:
''
Хорошо, достаточно справедливо - я ничего не сделал, чтобы установить путь.Поэтому я добавляю быструю строку в ~ / .bash_profile:
PYTHONPATH = "$ PYTHONPATH: /usr/local/python/lib/python2.5"
иsource
и попробуйте еще раз.
То же сообщение об ошибке.
Это любопытно, учитывая, что PYTHONPATH четко установлен;Я могу echo $PYTHONPATH
и вернуться :/usr/local/python/lib/python2.5
.Я решил проверить, как выглядит путь включения изнутри:
import sys
print "\n".join(sys.path)
, что дает:
/ System / Library / Frameworks / Python.framework / Versions / 2.5 /lib / python25.zip /System/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5 /System/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/plat-darwin /Система / Библиотека / Каркасы / Python.framework / Версии / 2.5 / lib / python2.5 / plat-mac /System/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/plat-mac/lib-Пакеты сценариев /System/Library/Frameworks/Python.framework/Versions/2.5/Extras/lib/python /System/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/lib-tk / System / Library /Frameworks / Python.framework / Versions / 2.5 / lib / python2.5 / lib-dynload /Library/Python/2.5/site-packages /System/Library/Frameworks/Python.framework/Versions/2.5/Extras/lib/python/PyObjC
, из которых /usr/local/python/yadda/yadda
заметно отсутствует.
Не уверен, что я должен здесь делать.Как заставить Python распознавать это местоположение как включаемый путь?
ОБНОВЛЕНИЕ
Как предложил Свен Марнах, я пренебрег экспортом PYTHONPATH.Я исправил эту проблему и теперь вижу, как она появляется, когда я печатаю sys.path
из Python.Тем не менее, я все еще получил сообщение об ошибке TEST FAILED
, которое я упоминал выше, только с моей новой переменной среды PYTHONPATH.
Итак, я попытался изменить его с /usr/local/python/lib/python2.5
на /usr/local/python/lib/python2.5/site-packages
, экспортировать и запустить то же самоеeasy_install
команда снова.Это приводит к совершенно новому результату, который вначале выглядел как успех (но не):
Creating /usr/local/python/lib/python2.5/site-packages/site.py
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 /var/folders/XW/XWpClVq7EpSB37BV3zTo+++++TI/-Tmp-/easy_install-krj9oR/PIL-1.1.7/egg-dist-tmp--Pyauy
--- using frameworks at /System/Library/Frameworks
[snipped: compiler warnings]
--------------------------------------------------------------------
PIL 1.1.7 SETUP SUMMARY
--------------------------------------------------------------------
version 1.1.7
platform darwin 2.5.1 (r251:54863, Sep 1 2010, 22:03:14)
[GCC 4.0.1 (Apple Inc. build 5465)]
--------------------------------------------------------------------
--- TKINTER support available
--- JPEG support 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__
No eggs found in /var/folders/XW/XWpClVq7EpSB37BV3zTo+++++TI/-Tmp-/easy_install-krj9oR/PIL-1.1.7/egg-dist-tmp--Pyauy (setup script problem?)
Опять же, это выглядит хорошо, но когда я запускаю свой скрипт:
Трассировка (последний последний вызов):
Файл "checkerboard.py", строка 1, в импорте Image, ImageDraw ImportError: Нет модуля с именем Image
Когда я проверяю, что сейчас под /usr/local/python/
, используя find .
, я получаю:
. / Lib ./lib/python2.5 ./lib/python2.5/site-packages ./lib/python2.5/site-packages/site.py ./lib/python2.5/site-packages/site.pyc
Итак ... модуль не выглядит (я предполагаю, что сайт.py и site.pyc являются метаданными или вспомогательными сценариями).Куда делась установка?
Замечу:
Чтобы проверить сборку, запустите скрипт selftest.py.
Но не надодействительно знаю, что это такое.
И я также заметил сообщение «Яйца не найдены».Есть ли один из этих советов?