Sur un système Ubuntu (10.10), j'ai un paquet Python qui s'installe dans /usr/local/lib/python2.6/site-packages/
. Ce n'est pas contenu dans le chemin par défaut (sys.path). Comment puis-je ajouter ce répertoire au chemin?
Définir la variable d'environnement $PYTHONPATH
est une solution, bien sûr, mais je cherche un moyen plus élégant de le faire. Par exemple, easy_install
y insère également les packages installés. Mon sys.path ressemble à ceci:
['', '/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']
le chemin n'est donc évidemment pas celui par défaut intégré au binaire Python.
Existe-t-il un seul fichier de configuration contenant les entrées ci-dessus? Ou de quelle manière est-il possible de le modifier?
La documentation du module de site et modifiant le chemin de recherche de Python semble cherchez.
Autant que je sache, ces entrées sont ajoutées à sys.path
par:
/usr/lib/python2.6/site.py
/usr/lib/python2.6/dist-packages/site.py
Le moyen le plus simple de le modifier consiste à ajouter un fichier /usr/local/lib/python2.6/dist-packages/site-packages.pth
contenant ../site-packages
.
Sinon, vous pouvez peut-être apprendre au paquet à utiliser site.getsitepackages()
?
Vous pouvez créer un nouveau fichier appelé /etc/profile.d/local_python.sh
avec le contenu
PYTHONPATH="/usr/local/lib/python2.6/site-packages/":"${PYTHONPATH}"
export PYTHONPATH
Ce qui définira la variable PYTHONPATH
pour tous les utilisateurs connectés sur votre système.
J'aimerais résumer mes découvertes sur la modification du chemin de python. Il y a deux façons de le faire.
PYTHONPATH
N'importe quel . Le fichier pth qui se trouve sur le chemin par défaut (voir ci-dessous) aura son contenu inclus dans sys.path
. Le format du fichier . Pth est simple: un chemin (dossier) par ligne. Étonnamment, les chemins peuvent être absolus ou relatifs au fichier . Pth .
Le chemin par défaut est l'endroit où réside l'interprète et <some-prefix>/lib/python<version>/site-packages
, où <some-prefix>
est généralement /usr/
.
PYTHONPATH
est une variable environnementale de votre système d'exploitation. Sur les systèmes Unix, vous les répertoriez par env
. La modification globale de ces variables se fait par le biais de . Sh scripts dans le dossier /etc/profile.d/
, comme indiqué par @ TestUser16418.
Par exemple, si vous souhaitez importer le module suds
qui est disponible sous forme de fichier .Egg
:
Egg_path = '/home/shahid/suds_2.4.Egg'
sys.path.append(Egg_path)
import suds
# ... rest of code