
Я хочу добавить папку на постоянной основе, 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