Respostas:
Normalmente, você pode evitar ter que fazer qualquer coisa com PYTHONPATH usando .pth
arquivos . Basta colocar um arquivo com uma extensão .pth (qualquer nome de base funciona) na pasta de pacotes do site do virtualenv, por exemplo lib\python2.7\site-packages
, com o caminho absoluto para o diretório que contém seu pacote como seu único conteúdo.
Se estiver usando virtualenv
, provavelmente também deve usar o virtualenvwrapper ; nesse caso, você pode usar o comando add2virtualenv para adicionar caminhos para o caminho Python para o virtualenv atual:
add2virtualenv directory1 directory2 …
add2virtualenv
não modifica $ PYTHONPATH, em vez disso, modifica sys.path.
add2virtualenv
, você pode ver que ele está modificando sys.path. Concordo que a documentação parece que modifica a PYTHONPATH
variável de ambiente, mas isso parece estar incorreto. bitbucket.org/virtualenvwrapper/virtualenvwrapper/src/…
Você também pode tentar colocar um link simbólico para um de seus virtuaisenv.
por exemplo. 1) ative seu virtualenv 2) execute python 3) import sys e verifique sys.path 4) você encontrará o caminho de pesquisa do python lá. Escolha um desses (por exemplo, pacotes do site) 5) vá lá e crie um link simbólico para o seu pacote como: ln -s caminho para o nome do seu pacote com o qual você estará importando
Dessa forma, você poderá importá-lo mesmo sem ativar seu virtualenv. Simplesmente tente: path-to-your-virtualenv-folder / bin / python e importe seu pacote.
Se você estiver usando o virtualenvwrapper,
$ cd to the parent folder
$ add2virtualenv folder_to_add
o console exibirá
Warning: Converting "folder_to_add" to "/absoutle/path/to/folder_to_add"
É isso, e você deve estar pronto para ir
import sys
import os
print(str(sys.path))
dir_path = os.path.dirname(os.path.realpath(__file__))
print("current working dir: %s" % dir_path)
sys.path.insert(0, dir_path)
Eu sugiro fortemente que você use o virtualenv e o virtualenvwrapper para evitar bagunçar o caminho.