Obtendo o PATH correto para python após a instalação do MacPorts

Obtendo o PATH correto para python após a instalação do MacPorts

Não consigo importar algumas bibliotecas python (PIL, psycopg2) que acabei de instalar com MacPorts. Procurei nesses fóruns e tentei ajustar minha PATHvariável para ~/.bash_profilecorrigir isso, mas não funcionou.

Eu adicionei a localização do PIL e do psycopg2 ao arquivo PATH.
Eu sei que o Terminal está usando uma versão do python em /usr/local/binvez daquela instalada pelo MacPorts em /opt/local/bin.

Preciso usar a versão MacPorts do Python para garantir que PIL e psycopg2 estejam em sys.path quando uso python no Terminal? Devo mudar para a versão MacPorts do Python ou isso causará mais problemas?

Caso seja útil, aqui estão mais fatos:

PIl e psycopg2 estão instalados em/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages

which pythonretorna/usr/bin/python

$ echo $PATHretorna (separei cada caminho para facilitar a leitura):

:/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

em python, >>> sys.pathretorna:

/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

Aceito quaisquer críticas e comentários, se alguma das opções acima parecer tola ou mal concebida. Eu sou novo em tudo isso. Obrigado!

Executando OSX 10.6.5 em um MacBook Pro, invocando python 2.6.1 do Terminal

Responder1

Use o comando 'notes' após instalar o python (altere o python26 para qualquer versão que você instalou):

$ port notes python26

Você verá algumas variações nas recomendações pós-instalação:

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

Você deve instalar python_selecte selecionar python26o Python como padrão. Então, se você realmente instalou PIL e pyscopg2 usando MacPorts (ou seja, algo como port install py26-psycopg2 py26-pil), então você não deveria ter que especificarqualquer coisaem PYTHONPATH. Você também não precisa adicionar os /opt/local/Library/Frameworks/…diretórios ao seu arquivo PATH. Depois de fazer isso, which pythondeverá retornar /opt/local/bin/python. As portas Python instaladas pelo MacPorts /opt/local/Library/Frameworks/Python.frameworkjá estão no sys.pathMacPorts Python. Você não os encontrou antes porque estava usando o System Python (ou seja /usr/bin/python), que não tem conhecimento dos pacotes MacPorts Python.

Responder2

EUpensarEu descobri a resposta para minha pergunta. Editei meu arquivo ~/.bash_profile para incluir

export PYTHONPATH=

e então adicionei todos os caminhos existentes em 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:

e então anexei os caminhos aos diretórios onde o MacPorts instalou o material:

/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:

agora, quando imprimo sys.path, os caminhos para os diretórios de instalação do MacPorts estão incluídos:

/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

Agora

>>> import PIL

e

>>> import psycopg2

funciona muito bem.

informação relacionada