Respuestas:
Por lo general, puede evitar tener que hacer algo con PYTHONPATH utilizando .pth
archivos . 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 …
add2virtualenv
no 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 PYTHONPATH
variable 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.