Ответы:
Вы не устанавливаете 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, os.environ['PATHPYTHON']=/some/pathзатем вам нужно вызвать os.system('python')перезапуск оболочки Python, чтобы новый добавленный путь стал эффективным.
os.system()не «перезапускает оболочку Python», а запускает новый интерактивный экземпляр Python. Когда вы вернетесь из этого, вы снова окажетесь в вызывающем сценарии.
sys.path.insert(0, '/path/to/whatever').