Mam to w moim ~/.profile
:
export PYTHONPATH=/home/dev/python-files
W python-files
katalogu mam kilka projektów sklonowanych z git-hub (flask, curveship i py-vgdl).
Ilekroć próbuję uruchomić którykolwiek z przykładów w tych projektach, otrzymuję błędy podobne do następujących:
$ 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
Wydaje mi się, że nie powinienem dostać tego błędu, ponieważ mam PYTHONPATH
skonfigurowaną zmienną środowiskową?
Uruchamianie interaktywnego interpretera Pythona:
>>> import os
>>> os.environ["PYTHONPATH"]
'/home/dev/python-files'
źródło
Możesz także wykonać następujące czynności:
export PYTHONPATH=$(pwd) **or** export PYTHONPATH=${PWD}
pwd to obecny katalog roboczy.
źródło
export PYTHONPATH=$PYTHONPATH:$(pwd)
PYTHONPATH
powinien wskazywać, gdzie znajdują się twoje pakiety i moduły Pythona, a nie gdzie znajdują się kasy. Innymi słowy, jeśli to zrobiszls "$PYTHONPATH"
, powinieneś zobaczyć*.py
pliki ( moduły Python ) i katalogi zawierające__init__.py
pliki ( pakiety Python ).Tak więc, jeśli chcesz
import vgdl
,PYTHONPATH
powinieneś wyglądać tak:ponieważ
vgdl
paczka jest w środkupy-vgdl
, a nie w środkupython-files
.Aby dodać także inne ścieżki, możesz
:
je oddzielić:To rzeczywiście zadziała, jednak w takich przypadkach używanie
PYTHONPATH
może być zbyt skomplikowane. To, co zalecam, to użycievirtualenv
, które zostało stworzone specjalnie w celu uproszczenia sytuacji takich jak Twoja. To, co musisz zrobić, to w zasadzie:virtualenv env
source env/bin/activate
pip
lubsetup.py
skryptu swoich pakietów.Nie udzielam wielu informacji, ponieważ virtualenv jest dobrze udokumentowany i jeśli potrzebujesz pomocy, lepiej otwórz nowe pytanie.
źródło