Добавление директории в 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.


