Переменная окружения PYTHONPATH

У меня это в моем ~/.profile:

export PYTHONPATH=/home/dev/python-files

В каталоге python-files у меня есть несколько проектов, клонированных из git-hub (колба, кривая и 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'
1
задан 3 February 2013 в 22:32

2 ответа

PYTHONPATH должен указывать на то, где находятся ваши пакеты и модули Python, а не где ваши проверки. Другими словами, если вы делаете ls "$PYTHONPATH", вы должны видеть файлы *.py (модули Python) и каталоги, содержащие файлы __init__.py (пакеты Python).

Итак, если вы хотите иметь возможность import vgdl, ваш PYTHONPATH должен выглядеть так:

PYTHONPATH=/home/dev/python-files/py-vgdl

, потому что модули vgdl Python находятся внутри py-vgdl, а не внутри python-files. [ ! d4]

Чтобы добавить другие пути, вы можете использовать : для их разделения:

PYTHONPATH="/home/dev/python-files/py-vgdl:/home/dev/python-files/something:$PYTHONPATH"

Это действительно будет работать, однако, для таких случаев использование PYTHONPATH может быть слишком сложным. Я рекомендую использовать virtualenv, который делается специально для упрощения таких ситуаций, как ваш. Что вам нужно сделать в основном:

Создать среду: virtualenv env «Активировать»: source env/bin/activate Установить пакеты: это можно сделать либо с помощью сценария pip, либо setup.py ваши пакеты. Наслаждаться.

Я не даю много информации, потому что virtualenv является virtualenv , и если вам нужна помощь в чем-то, вам лучше открыть новый вопрос.

3
ответ дан 25 May 2018 в 01:49

Вы также можете сделать следующее:

export PYTHONPATH=$(pwd) **or** export PYTHONPATH=${PWD}

pwd - текущий рабочий каталог.

3
ответ дан 25 May 2018 в 01:49

Другие вопросы по тегам:

Похожие вопросы: