У меня есть это в моем ~/.profile
:
export PYTHONPATH=/home/dev/python-files
В python-files
каталоге у меня есть несколько проектов, клонированных из git-hub (flask, кривый и py-vgdl).
Всякий раз, когда я пытаюсь запустить любой из примеров в этих проектах, я получаю ошибки, подобные следующим:
$ 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
Мне кажется, что я не должен получить эту ошибку, потому что у меня PYTHONPATH
настроена переменная окружения?
Запуск интерактивного переводчика python:
>>> import os
>>> os.environ["PYTHONPATH"]
'/home/dev/python-files'
источник
Вы также можете сделать следующее:
export PYTHONPATH=$(pwd) **or** export PYTHONPATH=${PWD}
pwd - это текущий рабочий каталог.
источник
export PYTHONPATH=$PYTHONPATH:$(pwd)
PYTHONPATH
должен указывать на то, где находятся ваши пакеты и модули Python, а не на то, где находятся ваши проверки. Другими словами, если вы сделаете это,ls "$PYTHONPATH"
вы должны увидеть*.py
файлы ( модули Python ) и каталоги, содержащие__init__.py
файлы ( пакеты Python ).Итак, если вы хотите
import vgdl
, выPYTHONPATH
должны выглядеть так:потому что
vgdl
пакет внутриpy-vgdl
, а не внутриpython-files
.Чтобы добавить и другие пути, вы можете использовать их
:
для разделения:Это действительно будет работать, однако, для таких случаев, использование
PYTHONPATH
может быть слишком сложным. Я рекомендую использоватьvirtualenv
, что сделано специально для упрощения ситуаций, подобных вашей. Что вам нужно сделать, это в основном:virtualenv env
source env/bin/activate
pip
илиsetup.py
сценарий ваших пакетов.Я не даю много информации, потому что virtualenv хорошо документирована, и если вам нужна помощь с чем-то, вам лучше открыть новый вопрос.
источник