J'ai ceci dans mon ~/.profile
:
export PYTHONPATH=/home/dev/python-files
Dans le python-files
répertoire, j'ai quelques projets clonés à partir de git-hub (flask, courbeship et py-vgdl).
Chaque fois que j'essaie de démarrer l'un des exemples de ces projets, j'obtiens des erreurs similaires aux suivantes:
$ python ~/python-files/py-vgdl/examples/gridphysics/frogs.py
Traceback (most recent call last):
File "/home/dev/python-files/py-vgdl/examples/gridphysics/frogs.py", line 67, in <module>
from vgdl.core import VGDLParser
ImportError: No module named vgdl.core
Il me semble que je ne devrais pas avoir cette erreur car j'ai cette PYTHONPATH
variable d'environnement configurée?
Exécution de l'interpréteur interactif python:
>>> import os
>>> os.environ["PYTHONPATH"]
'/home/dev/python-files'
la source
Vous pouvez également procéder comme suit:
export PYTHONPATH=$(pwd) **or** export PYTHONPATH=${PWD}
pwd est le répertoire de travail actuel.
la source
export PYTHONPATH=$PYTHONPATH:$(pwd)
PYTHONPATH
devrait indiquer où se trouvent vos packages et modules Python, et non où se trouvent vos extractions. En d'autres termes, si vous faites un,ls "$PYTHONPATH"
vous devriez voir des*.py
fichiers ( modules Python ) et des répertoires contenant des__init__.py
fichiers ( packages Python ).Donc, si vous voulez pouvoir
import vgdl
, votrePYTHONPATH
devrait ressembler à ceci:parce que le
vgdl
paquet est à l'intérieurpy-vgdl
, pas à l'intérieurpython-files
.Pour ajouter également les autres chemins, vous pouvez les utiliser
:
pour les séparer:Cela fonctionnera en effet, cependant, dans de tels cas, l'utilisation
PYTHONPATH
peut être trop complexe. Ce que je recommande est d'utiliservirtualenv
, qui est fait exprès pour simplifier des situations comme la vôtre. Ce que vous devez faire, c'est essentiellement:virtualenv env
source env/bin/activate
pip
ou lesetup.py
script de vos packages.Je ne donne pas beaucoup d'informations car virtualenv est bien documenté et si vous avez besoin d'aide pour quelque chose, vous feriez mieux d'ouvrir une nouvelle question.
la source