Добавление директории в PYTHONPATH навсегда: решение
Пройдите тест, узнайте какой профессии подходите
Быстрый ответ
Если желаете постоянно добавить директорию в PYTHONPATH
для Linux/macOS, закиньте строчку ниже в инициализационный файл вашего терминала (такой как ~/.bashrc
, ~/.zshrc
):
export PYTHONPATH="$PYTHONPATH:/ваш/путь/здесь"
В Windows используйте команду setx
в командной строке:
setx PYTHONPATH "%PYTHONPATH%;C:\ваш\путь\здесь"
Для активации изменений перезапустите терминал.
Итак, вы расширили PYTHONPATH
, добавив в него путь к тому каталогу, который интересует Python при поиске модулей для импорта.
Сохранение настроек между сессиями
Чтобы настройки PYTHONPATH
не пропадали после перезапуска, потребуется добавить команду export
в файл инициализации оболочки, такой как ~/.bashrc
для bash или ~/.zshrc
для Zsh.
В Unix-подобных системах подойдут также ~/.profile
или другие файлы конфигурации оболочки.
А в Windows команда setx
модифицирует системные переменные окружения, благодаря чему настройки становятся перманентными.
Использование .pth файлов для структурированного подхода
Python позволяет организовывать изменения путей с помощью .pth
файлов, которые можно разместить в директории site-packages
или user-site
.
Узнать путь к user-site
можно так:
python -m site --user-site
Запишите в .pth
файл абсолютные пути до нужных вам папок, каждый путь с новой строки.
Эта методика отличаеться от редактирования файлов инициализации оболочки тем, что изменения касаются только Python, не затрагивая остальные элементы системы.
# so_many_paths.pth
/home/user/ProjectAlpha
/home/user/ProjectOmega
Предосторожности при работе с PYTHONPATH
Модификация PYTHONPATH
позволяет нам получить доступ к разнообразным каталогам.
Однако, все это следует делать обдуманно и не заполнять переменную до отказа, чтобы избежать конфликтов между именами модулей и непредвиденных ошибок.
Стоит предпочесть использование виртуальных сред для изолированной работы с зависимостями проектов.
Применение изменений
Чтобы применить изменения в PYTHONPATH
, внесённые в файлы инициализации оболочки или .pth
файлы, требуется перезапуск оболочки или перезагрузка компьютера. Поэтому после каждого изменения всегда помните о необходимости открытия нового терминала или перезагрузки системы.
Визуализация
Вот аллегорическое изображение процесса модификации PYTHONPATH
:
Перед Вашим вмешательством это выглядит как игра в прятки:
До внесения изменений в PYTHONPATH
:
Python 🐍: "Где этот модуль salt
? Я никак не могу его отыскать!"
Файловая система 🗂️: ...
После добавления пути в PYTHONPATH
:
export PYTHONPATH="$PYTHONPATH:/путь/к/моим/укромным/модулям"
# Теперь Python без труда обнаруживает скрытые модули.
Теперь Python без труда находит модуль:
Python 🐍: "Ага, вот ты, модуль salt
, спрятался в моём сундуке!"
Выбранная директория 📁: salt
, pepper
, chili
И вот так они с удовольствием сосуществуют в вашем виртуальном кулинарном мире!
Временное vs Постоянное: Разберитесь в разнице
Внесение sys.path.append('/my/new/path')
в код приводит к изменению путей только в пределах текущей сессии Python и не является постоянным решением. Это своего рода временная пропускная способность, которая утрачивает силу в конце сессии.
import sys
sys.path.append('/my/terribly/temporary/path')
# Пожалуйста, Python, прими этот доступ на временной основе!
Платформоспецифические рекомендации
Пользователи Windows должны учитывать, что расположение папки site-packages
может варьироваться, поэтому рекомендуется консультироваться с документацией установленной версии Python. Владельцам Mac следует твердо знать, что изменения в ~/.bash_profile
начинают действовать только в новых сессиях терминала.
Актуальность решений
Со временем, с выходом новых версий Python, способы интерпретации переменных окружения могут меняться. Всегда проверяйте соответствие ваших команд документации Python.
Полезные материалы
- Командная строка и окружение — Документация Python — официальное руководство по настройке
PYTHONPATH
. - Как перманентно добавить директорию в PYTHONPATH? – Stack Overflow — общие рекомендации сообщества по добавлении путей в
PYTHONPATH
. - site — Конфигурация на уровне сайта — Документация Python — пошаговое описание использования
.pth
файлов для изменения путей Python. - Виртуальные среды и пакеты — Документация Python — обзор использования виртуальных сред для управления пакетами Python.
- Установка пакетов — Руководство пользователя по пакетированию Python — подробная инструкция по установке Python-пакетов через
pip
. - python-dotenv · PyPI — подробный гайд по управлению окружением с помощью файлов
.env
. - Как задать системные переменные окружения в Windows 10? – Super User — пошаговое руководство по настройке системных переменных окружения в Windows.