Respuestas:
Por lo general, puede evitar tener que hacer algo con PYTHONPATH utilizando .ptharchivos . Simplemente coloque un archivo con una extensión .pth (cualquier nombre de base funciona) en la carpeta de paquetes del sitio de su virtualenv, por ejemplo lib\python2.7\site-packages, con la ruta absoluta al directorio que contiene su paquete como único contenido.
Si está usando virtualenv, probablemente también debería usar virtualenvwrapper , en cuyo caso puede usar el comando add2virtualenv para agregar rutas a la ruta de Python para el virtualenv actual:
add2virtualenv directory1 directory2 …
add2virtualenvno modifica $ PYTHONPATH, sino que modifica sys.path.
add2virtualenv, puede ver que está modificando sys.path. Estoy de acuerdo en que los documentos hacen que parezca que modifica la PYTHONPATHvariable de entorno, pero eso parece ser incorrecto. bitbucket.org/virtualenvwrapper/virtualenvwrapper/src/…
También puede intentar poner un enlace simbólico a uno de sus virtualenv.
p.ej. 1) active su virtualenv 2) ejecute python 3) importe sys y verifique sys.path 4) encontrará la ruta de búsqueda de python allí. Elija uno de esos (por ejemplo, paquetes de sitio) 5) vaya allí y cree un enlace simbólico a su paquete como: ln -s ruta-al-nombre-de-su-paquete-con-el-que-estará-importando
De esa manera, debería poder importarlo incluso sin activar su virtualenv. Simplemente intente: ruta-a-su-carpeta-virtualenv / bin / python e importe su paquete.
Si está utilizando virtualenvwrapper,
$ cd to the parent folder
$ add2virtualenv folder_to_add
la consola mostrará
Warning: Converting "folder_to_add" to "/absoutle/path/to/folder_to_add"
Eso es todo, y deberías estar listo para irte
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)
Le sugiero que use virtualenv y virtualenvwrapper para evitar saturar el camino.