1

Я не могу импортировать некоторые библиотеки Python (PIL, psycopg2), которые я только что установил с MacPorts. Я просмотрел эти форумы и попытался настроить переменную PATH в ~/.bash_profile , чтобы это исправить, но это не сработало.

Я добавил местоположение PIL и psycopg2 в PATH .
Я знаю, что Терминал использует версию python в /usr/local/bin а не ту, которая установлена MacPorts в /opt/local/bin .

Нужно ли использовать версию Python для MacPorts, чтобы PIL и psycopg2 были в sys.path, когда я использую python в терминале? Должен ли я перейти на версию Python для MacPorts или это вызовет больше проблем?

В случае, если это полезно, вот больше фактов:

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 из терминала

2 ответа2

5

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

2

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

работать просто отлично.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .