Я не могу импортировать некоторые библиотеки Python (PIL, psycopg2), что я просто установил с MacPorts. Я просмотрел эти форумы и попытался скорректировать мой PATH
переменная в ~/.bash_profile
для фиксации этого, но это не работало.
Я добавил местоположение PIL и psycopg2 к PATH
.
Я знаю, что Терминал использует версию Python в /usr/local/bin
вместо того, установленного MacPorts в /opt/local/bin
.
Я должен использовать версию MacPorts Python, чтобы удостовериться, что PIL и psycopg2 находятся на sys.path, когда я использую Python в Терминале? Я должен переключиться на версию MacPorts Python, или это вызовет больше проблем?
В случае, если это полезно, вот больше фактов:
PIl и psycopg2 установлены в /opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages
which python
возвраты/usr/bin/python
$ echo $PATH
возвраты (я разделил каждый путь для легкого чтения):
:/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/
:/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages
:/opt/local/bin
:/opt/local/sbin
:/usr/local/git/bin
:/usr/bin
:/bin
:/usr/sbin
:/sbin
:/usr/local/bin
:/usr/local/git/bin
:/usr/X11/bin
:/opt/local/bin
в Python, >>> sys.path
возвраты:
/Library/Frameworks/SQLite3.framework/Versions/3/Python
/Library/Python/2.6/site-packages/numpy-override
/Library/Frameworks/GDAL.framework/Versions/1.7/Python/site-packages
/Library/Frameworks/cairo.framework/Versions/1/Python
/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python26.zip
/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6
/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/plat-darwin
/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/plat-mac
/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/plat-mac/lib-scriptpackages
/System/Library/Frameworks/Python.framework/Versions/2.6/Extras/lib/python
/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/lib-tk
/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/lib-old
/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/lib-dynload
/Library/Python/2.6/site-packages
/System/Library/Frameworks/Python.framework/Versions/2.6/Extras/lib/python/PyObjC
/System/Library/Frameworks/Python.framework/Versions/2.6/Extras/lib/python/wx-2.8-mac-unicode
Я приветствую любую критику и комментарии, если любой из вышеупомянутых глупых взглядов или плохо задуманных. Я плохо знаком со всем этим.Спасибо!
Выполнение OSX 10.6.5 на MacBook Pro, вызов Python 2.6.1 от Терминала
Используйте команду 'примечаний' после установки Python (измените python26 на любую версию, которую Вы установили):
$ port notes python26
Вы будете видеть некоторую вариацию на рекомендации установки сообщения:
python26 has the following notes:
To fully complete your installation and make python 2.6 the default, please
run:
sudo port install python_select
sudo port select python python26
Необходимо установить python_select
и затем выберите python26
как Ваш Python по умолчанию. Затем если Вы действительно устанавливали PIL и pyscopg2 с помощью MacPorts (т.е. что-то как port install py26-psycopg2 py26-pil
), затем Вам ничего не придется указать в PYTHONPATH
. Вы также не должны добавлять /opt/local/Library/Frameworks/…
каталоги к Вашему PATH
. После выполнения этого, which python
должен возвратиться /opt/local/bin/python
. Порты Python, установленные MacPorts в /opt/local/Library/Frameworks/Python.framework
уже находятся в sys.path
для MacPorts Python. Вы не находили их ранее, потому что Вы использовали Систему Python (т.е. /usr/bin/python
), который не знает о пакетах MacPorts Python.
Я думаю, что выяснил ответ на свой вопрос. Я отредактировал свой ~/.bash_profile файл для включения
export PYTHONPATH=
и затем я включил все существующие пути sys.path
:
export PYTHONPATH=/Library/Frameworks/SQLite3.framework/Versions/3/Python:/Library/Python/2.6/site-packages/numpy-override:/Library/Frameworks/GDAL.framework/Versions/1.7/Python/site-packages:/Library/Frameworks/cairo.framework/Versions/1/Python:/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python26.zip:/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6:/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/plat-darwin:/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/plat-mac:/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/plat-mac/lib-scriptpackages:/System/Library/Frameworks/Python.framework/Versions/2.6/Extras/lib/python:/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/lib-tk:/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/lib-old:/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/lib-dynload:/Library/Python/2.6/site-packages:/System/Library/Frameworks/Python.framework/Versions/2.6/Extras/lib/python/PyObjC:/System/Library/Frameworks/Python.framework/Versions/2.6/Extras/lib/python/wx-2.8-mac-unicode:/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/:/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages:
и затем я добавил пути к каталогам, где MacPorts установил материал:
/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/:/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages:
теперь, когда я печатаю sys.path, пути к каталогам установки MacPorts включены:
/Library/Frameworks/SQLite3.framework/Versions/3/Python
/Library/Python/2.6/site-packages/numpy-override
/Library/Frameworks/GDAL.framework/Versions/1.7/Python/site-packages
/Library/Frameworks/cairo.framework/Versions/1/Python
/Library/Frameworks/SQLite3.framework/Versions/3/Python
/Library/Python/2.6/site-packages/numpy-override
/Library/Frameworks/GDAL.framework/Versions/1.7/Python/site-packages
/Library/Frameworks/cairo.framework/Versions/1/Python
/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python26.zip
/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6
/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/plat-darwin
/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/plat-mac
/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/plat-mac/lib-scriptpackages
/System/Library/Frameworks/Python.framework/Versions/2.6/Extras/lib/python
/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/lib-tk
/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/lib-old
/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/lib-dynload
/Library/Python/2.6/site-packages
/System/Library/Frameworks/Python.framework/Versions/2.6/Extras/lib/python/PyObjC
/System/Library/Frameworks/Python.framework/Versions/2.6/Extras/lib/python/wx-2.8-mac-unicode
/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6
/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages
Теперь
>>> import PIL
и
>>> import psycopg2
работать просто великолепно.