Em um sistema Ubuntu (10.10), tenho um pacote Python que se instala no /usr/local/lib/python2.6/site-packages/
. Isso não está contido no caminho padrão (sys.path). Como adiciono este diretório ao caminho?
Definir a $PYTHONPATH
variável de ambiente é uma solução, é claro, mas estou procurando uma maneira mais elegante de fazer isso. Por exemplo, easy_install
também coloca pacotes instalados nele, meu sys.path se parece com isso:
['', '/usr/local/lib/python2.6/dist-packages/keyring-0.5.1-py2.6.egg',
'/usr/lib/python2.6', '/usr/lib/python2.6/plat-linux2', '/usr/lib/python2.6/lib-tk',
'/usr/lib/python2.6/lib-old', '/usr/lib/python2.6/lib-dynload',
'/usr/local/lib/python2.6/dist-packages', '/usr/lib/python2.6/dist-packages',
'/usr/lib/python2.6/dist-packages/PIL', '/usr/lib/pymodules/python2.6',
'/usr/lib/pymodules/python2.6/gtk-2.0']
portanto, o caminho obviamente não é o padrão incorporado no binário Python.
Existe um único arquivo de configuração que contém as entradas acima? Ou de que maneira é possível modificá-lo?
sitecustomize.py
quesite.py
tenta importar e modificarsys.path
lá.Você pode criar um novo arquivo chamado
/etc/profile.d/local_python.sh
com o conteúdoO que definirá a
PYTHONPATH
variável para todos os usuários conectados no seu sistema.fonte
Gostaria de resumir minhas descobertas sobre a modificação de caminho do python. Existem duas maneiras de fazer isso.
PYTHONPATH
Qualquer arquivo .pth encontrado no caminho padrão (veja abaixo) terá seu conteúdo incluído
sys.path
. O formato do referido arquivo .pth é simples: um caminho (pasta) por linha. Surpreendentemente, os caminhos podem ser absolutos ou relativos ao arquivo .pth .O caminho padrão é onde o intérprete reside e
<some-prefix>/lib/python<version>/site-packages
onde<some-prefix>
normalmente está/usr/
.PYTHONPATH
é uma variável ambiental do seu sistema operacional. Nos sistemas unix, você os listaenv
. A modificação global dessas variáveis é feita por meio de scripts .sh dentro da/etc/profile.d/
pasta, como mencionado por @ TestUser16418.fonte
Por exemplo, se você deseja importar o
suds
módulo que está disponível como um.egg
arquivo:fonte