Как установить PYTHONPATH в скрипте Python? - PullRequest
95 голосов
/ 24 июня 2010

Я знаю, как установить его в моем / etc / profile и в моих переменных окружения.

Но что, если я хочу установить это во время сценария?Это импорт ОС, сис?Как мне это сделать?

Ответы [ 6 ]

163 голосов
/ 24 июня 2010

Вы не установили PYTHONPATH, вы добавляете записи в sys.path. Это список каталогов, в которых нужно искать пакеты Python, так что вы можете просто добавить свои каталоги в этот список.

sys.path.append('/path/to/whatever')

Фактически, sys.path инициализируется путем разделения значения PYTHONPATH на символ разделителя пути (: в Linux-подобных системах, ; в Windows).

Вы также можете добавить каталоги, используя site.addsitedir, и этот метод также будет учитывать .pth файлы, существующие в передаваемых вами каталогах. (Это не относится к каталогам, указанным в PYTHONPATH.)

30 голосов
/ 24 июня 2010

Вы можете получить и установить переменные окружения с помощью os.environ:

import os
user_home = os.environ["HOME"]

os.environ["PYTHONPATH"] = "..."

Но поскольку ваш интерпретатор уже работает, это не будет иметь никакого эффекта.Вам лучше использовать

import sys
sys.path.append("...")

, который является массивом, в который ваш PYTHONPATH будет преобразован при запуске интерпретатора.

13 голосов

Извините за повторный вопрос, но думаю, что это может кому-то помочь:

Если вы поставите 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

Извините, если раздражал, что кто-то снова открыл вопрос.

5 голосов
/ 24 июня 2010

PYTHONPATH заканчивается в sys.path , который вы можете изменить во время выполнения.

import sys
sys.path += ["whatever"]
0 голосов
/ 01 августа 2018

У меня в Linux это тоже работает:

import sys
sys.path.extend(["/path/to/dotpy/file/"])
0 голосов
/ 31 января 2018

вы можете установить PYTHONPATH с помощью os.environ['PATHPYTHON']=/some/path, затем вам нужно вызвать os.system('python'), чтобы перезапустить оболочку python, чтобы сделать добавленный путь эффективным.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...