Ответы:
Вы не устанавливаете 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')
.