Я знаю, как установить его в моем /etc/profile и в переменных среды.
Но что, если я хочу установить его во время script?
Это импорт os, sys? Как это сделать?
Ответ 1
Вы не устанавливаете PYTHONPATH, вы добавляете записи в sys.path. Это список каталогов, которые нужно искать для пакетов Python, поэтому вы можете просто добавить свои каталоги в этот список.
sys.path.append('/path/to/whatever')
Фактически, sys.path инициализируется путем разделения значения PYTHONPATH на символе разделителя путей (: на Linux-подобных системах, ; на Windows).
Вы также можете добавить каталоги, используя site.addsitedir, и этот метод будет также учитывать файлы .pth, существующие в каталогах, которые вы передаете, (Это не относится к каталогам, указанным в PYTHONPATH.)
Ответ 2
Вы можете получить и установить переменные среды через os.environ:
import os
user_home = os.environ["HOME"]
os.environ["PYTHONPATH"] = "..."
Но поскольку ваш интерпретатор уже работает, это не будет иметь никакого эффекта. Лучше с помощью
import sys
sys.path.append("...")
который является массивом, ваш PYTHONPATH будет преобразован в начало интерпретатора.
Ответ 3
Извините за повторный вопрос, но я думаю, что он может помочь кому-то:
Если вы поместите 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
Извините, если я раздражал кого-то, вновь открывшего вопрос.
Ответ 4
PYTHONPATH заканчивается в sys.path, который вы можете изменить во время выполнения.