PYTHONPATH ignoré
Environnement: debian 4.0
Python 2.4
Mon "projet" est installé dans:
/usr/lib/python2.4/site-packages/projet.
Mais je veux utiliser ma copie de travail au lieu de l'installation de celui qui est situé dans:
/home/moi/dev/projet/src
Donc ce que je fais est:
exportation PYTHONPATH=/home/moi/dev/projet/src
ipython
importation foo # qui se trouve dans src
foo.__file__
*/usr/lib/python2.4/site-packages/project/foo.py*
au lieu de :
/home/me/dev/project/src/project/foo.py
Comment venir? J'essaie de vérifier les chemins (ayant fait l'exportation ci-dessus) et ce que je vois est:
import sys,os
sys.chemin
[",
'/usr/bin',
'/usr/lib/python2.4/site-packages',
'/home/moi/dev/projet/src',
'/usr/lib/python24.zip',
'/usr/lib/python2.4',
'/usr/lib/python2.4/plate-linux2',
'/usr/lib/python2.4/lib-tk',
'/usr/lib/python2.4/lib-dynload',
'/usr/local/lib/python2.4/site-packages',
'/usr/lib/python2.4/site-packages/PIL',
'/var/lib/python-support/python2.4',
'/usr/lib/python2.4/site-packages/IPython/Extensions',
'/home/moi/.ipython']os.environ['PYTHONPATH']
/home/moi/dev/projet/src
source d'informationauteur
Vous devez vous connecter pour publier un commentaire.
Selon la documentation python, ce comportement est attendu: https://docs.python.org/2.4/lib/module-sys.html:
Sous python-2.6 c'est différent: http://docs.python.org/tutorial/modules.html#the-module-search-path
J'ai trouvé le problème (je l'ai raté au début, quand quelqu'un m'a signalé Où est Python sys.chemin initialisé à partir de?).
Il semble que easy_install crée une pth fichier /usr/lib/python2.4/site-packages/facile à installer.la pth qui est ensuite chargé par site.py. Cela insère le site-packages chemin dans le sys chemin avant le PYTHONPATH. Pas sympa.
Je ne crois pas que vous avez aucun contrôle sur l'endroit où la PYTHONPATH est inséré dans le chemin d'accès réel de la liste. Mais ce n'est pas la seule façon de modifier le chemin d'accès que vous pouvez mettre à jour sys.chemin vous-même, avant de vous essayez d'importer le projet.
Edit: Dans votre cas particulier, vous pouvez modifier le chemin d'accès avec
Je vois '/usr/lib/python2.4/site-packages " dans votre chemin d'accès avant de '/home/moi/dev/projet/src', est-ce que la matière? Ce qui se passe quand vous changez les deux?
De la documentation:
Alors peut-être que vous n'avez pas trouvé votre copie de travail sur votre PYTHONPATH que vous en pensiez?
Pas une réponse directe à votre question, mais vous pouvez également utiliser un virtualenv à créer un environnement de développement. Dans ce virtualenv ensuite, vous pouvez installer votre produit dans /home/moi/dev/projet/src comme un paquet de développement: "python setup.py développer".
De cette façon, vous n'avez pas à changer votre PYTHONPATH manuellement. Il suffit d'activer le virtualenv si vous souhaitez utiliser le code de développement.
Je pense que vous avez configuré PYTHONPATH à /home/moi/build/projet/src /depuis /home/moi/dev/projet/src n'apparaît pas dans sys.chemin, mais dans /home/moi/build/projet/src.
Il sonne comme le
src
répertoire ne dispose pas d'une__init__.py
fichier. Ce n'est pas un bon paquet.