web-dev-qa-db-fra.com

Comment ajouter un chemin à PYTHONPATH dans virtualenv

J'essaie d'ajouter un chemin d'accès à la variable d'environnement PYTHONPATH, qui ne serait visible que depuis un environnement virtualenv particulier. 

J'ai essayé SET PYTHONPATH=... sous une invite de commande virtualenv, mais cela définit la variable pour tout l'environnement.

Comment puis-je y arriver?

84
Flavien

Vous pouvez généralement éviter de faire quoi que ce soit avec PYTHONPATH en en utilisant .pth fichiers . Il suffit de placer un fichier avec une extension .pth (tout nom de base fonctionnant) dans le dossier site-packages de virtualenv, par exemple. lib\python2.7\site-packages, avec le chemin absolu du répertoire contenant votre paquet comme contenu unique.

137
Dougal

Si vous utilisez virtualenv, vous devriez probablement aussi utiliser virtualenvwrapper , auquel cas vous pouvez utiliser la commande add2virtualenv pour ajouter des chemins au chemin Python du virtualenv actuel:

add2virtualenv directory1 directory2 … 

89
crimeminister

Vous pouvez également essayer de mettre un lien symbolique vers l’un de vos virtualenv.

par exemple . 1) activez votre virtualenv 2) exécutez python 3) importez sys et vérifiez sys.path 4) vous y trouverez le chemin de recherche python. Choisissez l’un de ceux-ci (par exemple, site-packages) 5) Allez-y et créez un lien symbolique vers votre paquet tel que: Ln -s-chemin du nom de votre paquetage avec lequel vous serez -important

De cette façon, vous devriez pouvoir l’importer même sans activer votre virtualenv. Essayez simplement: chemin-de-votre-dossier-virtualenv/bin/python Et importez votre paquet.

4
Slavko-t
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)

Je vous suggère fortement d'utiliser virtualenv et virtualenvwrapper pour éviter les encombrements

0
Rubber Duck

Si vous utilisez virtualenvwrapper, 

$ cd to the parent folder
$ add2virtualenv  folder_to_add

la console affichera 

Warning: Converting "folder_to_add" to "/absoutle/path/to/folder_to_add"

Ça y est, et vous devriez être prêt à partir

0
Aneesh Panoli