Я знаю, как установить его в моем /etc/profile и в переменных среды.
Но что, если я хочу установить его во время script? Это импорт os, sys? Как это сделать?
Я знаю, как установить его в моем /etc/profile и в переменных среды.
Но что, если я хочу установить его во время script? Это импорт os, sys? Как это сделать?
Вы не устанавливаете PYTHONPATH
, вы добавляете записи в sys.path
. Это список каталогов, которые нужно искать для пакетов Python, поэтому вы можете просто добавить свои каталоги в этот список.
sys.path.append('/path/to/whatever')
Фактически, sys.path
инициализируется путем разделения значения PYTHONPATH
на символе разделителя путей (:
на Linux-подобных системах, ;
на Windows).
Вы также можете добавить каталоги, используя site.addsitedir
, и этот метод будет также учитывать файлы .pth
, существующие в каталогах, которые вы передаете, (Это не относится к каталогам, указанным в PYTHONPATH
.)
Вы можете получить и установить переменные среды через os.environ
:
import os
user_home = os.environ["HOME"]
os.environ["PYTHONPATH"] = "..."
Но поскольку ваш интерпретатор уже работает, это не будет иметь никакого эффекта. Лучше с помощью
import sys
sys.path.append("...")
который является массивом, ваш PYTHONPATH
будет преобразован в начало интерпретатора.
Извините за повторный вопрос, но я думаю, что он может помочь кому-то:
Если вы поместите sys.path.append('dir/to/path')
без проверки, он уже добавлен, вы можете создать длинный список в sys.path
. Для этого я рекомендую это:
import sys
import os # if you want this directory
try:
sys.path.index('/dir/path') # Or os.getcwd() for this directory
except ValueError:
sys.path.append('/dir/path') # Or os.getcwd() for this directory
Извините, если я раздражал кого-то, вновь открывшего вопрос.
PYTHONPATH заканчивается в sys.path, который вы можете изменить во время выполнения.
import sys
sys.path += ["whatever"]