$PYTHONPATH и sys.path, похоже, не совпадают

$PYTHONPATH и sys.path, похоже, не совпадают

Я хочу добавить папку на постоянной основе, sys.pathно это не работает.

На моем Debian Stretch, когда я выполняю:

$ echo $PYTHONPATH

он выглядит пустым

В то же время, когда я печатаю содержимое sys.path, есть 10 разных путей, которые не совпадают с теми, которые содержатся в $PATH(и, очевидно, в $PYTHONPATH). Как это можно объяснить?

(Мне пришлось создать virtualenv для фреймворка, но не думаю, что я им сейчас пользуюсь, так что это, вероятно, не имеет отношения к делу, но мне эта концепция не очень понятна, так что, возможно, я что-то упускаю)

Также я попытался изменить, .bashrcчтобы добавить путь, $PYTHONPATHпоэтому я знаю следующую строку:

PYTHONPATH=$PYTHONPATH:~/bin 

После перезагрузки все работает, я имею в виду, что $PYTHONPATH содержит его, но ничего не меняется для sys.path.

Также $ env | grep ^PYTHONничего не возвращает.

Итак, как sys.pathон заполняется и как можно добавить в него постоянную папку?

решение1

sys.pathв Python это «список строк, который определяет путь поиска модулей. Инициализируется из переменной окружения PYTHONPATH, плюс зависящее от установки значение по умолчанию». (взято изонлайн-документация Python).

Для sys.pathтого, чтобы быть затронутым PYTHONPATH, последний должен быть переменной окружения. Если это не переменная окружения, а просто переменная оболочки, она не будет видна интерпретатору python. Вы превращаете ее в переменную окружения, экспортируя ее после установки ее значения или одновременно, как в

export PYTHONPATH=/some/path:/goes/here

Связанный контент