Постоянно добавить каталог в PYTHONPATH? - PullRequest
270 голосов
/ 04 августа 2010

Всякий раз, когда я использую sys.path.append, будет добавлен новый каталог.Однако, как только я закрою python, список вернется к предыдущим (по умолчанию?) Значениям.Как мне постоянно добавить каталог в PYTHONPATH?

Ответы [ 17 ]

5 голосов
/ 27 октября 2011

Просто добавьте ответ awesomo, вы также можете добавить эту строку в ~/.bash_profile или ~/.profile

3 голосов
/ 19 марта 2019

В MacOS, вместо указания пути к определенной библиотеке. Предоставление полного пути к корневой папке проекта в

~./bash_profile 

сделал мой день, например:

export PYTHONPATH="${PYTHONPATH}:/Users/<myuser>/project_root_folder_path"

после этого сделать:

source ~./bash_profile
2 голосов
/ 10 июля 2017

Я добавил постоянно в Windows Vista, Python 3.5

Система> Панель управления> Расширенные настройки системы> Дополнительно (нажмите) Переменные среды> Системные переменные> (если вы не видите PYTHONPATH в столбце Переменная)щелкните) Создать> Имя переменной: PYTHONPATH> Значение переменной:

Пожалуйста, укажите каталог в значении переменной.Это детали ответа Blue Peppers.

1 голос
/ 21 декабря 2018

Добавление нового пути к PYTHONPATH выполняется вручную:

добавление пути к вашему профилю ~ / .bashrc в терминале с помощью:

vim ~/.bashrc

вставьте следующее в свой профиль

export PYTHONPATH="${PYTHONPATH}:/User/johndoe/pythonModule"

затем убедитесь, что ваш профиль bashrc используется при каждом запуске кода в терминале:

source ~/.bashrc 

Надеюсь, это поможет.

0 голосов
/ 31 мая 2019

Кратчайший путь между A <-> B является прямой линией;

import sys
if not 'NEW_PATH' in sys.path:
  sys.path += ['NEW_PATH']
0 голосов
/ 11 июля 2018

Сценарий ниже работает на всех платформах, так как это чистый Python.Он использует PathLib Path, описанный здесь https://docs.python.org/3/library/pathlib.html,, чтобы он работал кроссплатформенно.Вы запускаете его один раз, перезапускаете ядро ​​и все.Вдохновлен https://medium.com/@arnaud.bertrand/modifying-python-s-search-path-with-pth-files-2a41a4143574.

from pathlib import Path
to_add=Path(path_of_directory_to_add)
from sys import path

if str(to_add) not in path:
    minLen=999999
    for index,directory in enumerate(path):
        if 'site-packages' in directory and len(directory)<=minLen:
            minLen=len(directory)
            stpi=index

    pathSitePckgs=Path(path[stpi])
    with open(str(pathSitePckgs/'current_machine_paths.pth'),'w') as pth_file:
        pth_file.write(str(to_add))
0 голосов
/ 01 марта 2018

В Python 3.6.4 вы можете сохранить sys.path в сеансах Python следующим образом:

import sys
import os

print(str(sys.path))

dir_path = os.path.dirname(os.path.realpath(__file__))
print(f"current working dir: {dir_path}")

root_dir = dir_path.replace("/util", '', 1)
print(f"root dir: {root_dir}")

sys.path.insert(0, root_dir)

print(str(sys.path))

Я настоятельно рекомендую вам использовать virtualenv и virtualenvwrapper, иначе вы будете загромождать свой путь

...