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

1

Não consigo importar algumas bibliotecas python (PIL, psycopg2) que acabei de instalar com o MacPorts. Analisei esses fóruns e tentei ajustar minha variável PATH em ~/.bash_profile para corrigir isso, mas não funcionou.

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

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

Caso seja útil, veja mais fatos:

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

which python retorna /usr/bin/python

$ echo $PATH returns (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.path retorna:

/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

Congratulo-me com qualquer crítica e comentários, se algum dos acima parece tolo ou mal concebido. Eu sou novo em tudo isso. Obrigado!

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

    
por BenjaminGolder 22.12.2010 / 03:53

2 respostas

5

Use o comando 'notes' depois de instalar o python (altere python26 para a 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_select e, em seguida, selecionar python26 como seu Python padrão. Então, se você realmente instalou o PIL e o pyscopg2 usando MacPorts (ou seja, algo como port install py26-psycopg2 py26-pil ), então você não deveria ter que especificar qualquer coisa em PYTHONPATH . Você também não precisa adicionar os diretórios /opt/local/Library/Frameworks/… ao seu PATH . Depois de fazer isso, which python deve retornar /opt/local/bin/python . As portas Python instaladas pelo MacPorts em /opt/local/Library/Frameworks/Python.framework já estão no sys.path do MacPorts Python. Você não os encontrava mais cedo porque estava usando o System Python (ou seja, /usr/bin/python ), que não tem conhecimento dos pacotes do MacPorts Python.

    
por 23.12.2010 / 08:34
2

Eu acho que eu descobri a resposta para minha pergunta. Eu editei meu arquivo ~ / .bash_profile para incluir

export PYTHONPATH=

e depois 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 depois eu adicionei os caminhos aos diretórios onde o MacPorts instalou coisas:

/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

funcione bem.

    
por 22.12.2010 / 07:56