Разбирание в ПУТИ для Python после установки MacPorts

Я не могу импортировать некоторые библиотеки 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 от Терминала

1
задан 22.12.2010, 08:58

2 ответа

Используйте команду 'примечаний' после установки 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.

5
ответ дан 12.12.2019, 08:02

Я думаю, что выяснил ответ на свой вопрос. Я отредактировал свой ~/.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

работать просто великолепно.

2
ответ дан 12.12.2019, 08:02

Теги

Похожие вопросы