logo

Добавление директории в PYTHONPATH навсегда: решение

Быстрый ответ

Если желаете постоянно добавить директорию в PYTHONPATH для Linux/macOS, закиньте строчку ниже в инициализационный файл вашего терминала (такой как ~/.bashrc, ~/.zshrc):

Bash
Скопировать код
export PYTHONPATH="$PYTHONPATH:/ваш/путь/здесь"

В Windows используйте команду setx в командной строке:

cmd
Скопировать код
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
Скопировать код
python -m site --user-site

Запишите в .pth файл абсолютные пути до нужных вам папок, каждый путь с новой строки. Эта методика отличаеться от редактирования файлов инициализации оболочки тем, что изменения касаются только Python, не затрагивая остальные элементы системы.

Python
Скопировать код
# so_many_paths.pth
/home/user/ProjectAlpha
/home/user/ProjectOmega

Предосторожности при работе с PYTHONPATH

Модификация PYTHONPATH позволяет нам получить доступ к разнообразным каталогам. Однако, все это следует делать обдуманно и не заполнять переменную до отказа, чтобы избежать конфликтов между именами модулей и непредвиденных ошибок. Стоит предпочесть использование виртуальных сред для изолированной работы с зависимостями проектов.

Применение изменений

Чтобы применить изменения в PYTHONPATH, внесённые в файлы инициализации оболочки или .pth файлы, требуется перезапуск оболочки или перезагрузка компьютера. Поэтому после каждого изменения всегда помните о необходимости открытия нового терминала или перезагрузки системы.

Визуализация

Вот аллегорическое изображение процесса модификации PYTHONPATH:

Перед Вашим вмешательством это выглядит как игра в прятки:

До внесения изменений в PYTHONPATH: Python 🐍: "Где этот модуль salt? Я никак не могу его отыскать!" Файловая система 🗂️: ...

После добавления пути в PYTHONPATH:

Python
Скопировать код
export PYTHONPATH="$PYTHONPATH:/путь/к/моим/укромным/модулям"
# Теперь Python без труда обнаруживает скрытые модули.

Теперь Python без труда находит модуль:

Python 🐍: "Ага, вот ты, модуль salt, спрятался в моём сундуке!" Выбранная директория 📁: salt, pepper, chili

И вот так они с удовольствием сосуществуют в вашем виртуальном кулинарном мире!

Временное vs Постоянное: Разберитесь в разнице

Внесение sys.path.append('/my/new/path') в код приводит к изменению путей только в пределах текущей сессии Python и не является постоянным решением. Это своего рода временная пропускная способность, которая утрачивает силу в конце сессии.

Python
Скопировать код
import sys
sys.path.append('/my/terribly/temporary/path')
# Пожалуйста, Python, прими этот доступ на временной основе!

Платформоспецифические рекомендации

Пользователи Windows должны учитывать, что расположение папки site-packages может варьироваться, поэтому рекомендуется консультироваться с документацией установленной версии Python. Владельцам Mac следует твердо знать, что изменения в ~/.bash_profile начинают действовать только в новых сессиях терминала.

Актуальность решений

Со временем, с выходом новых версий Python, способы интерпретации переменных окружения могут меняться. Всегда проверяйте соответствие ваших команд документации Python.

Полезные материалы

  1. Командная строка и окружение — Документация Python — официальное руководство по настройке PYTHONPATH.
  2. Как перманентно добавить директорию в PYTHONPATH? – Stack Overflow — общие рекомендации сообщества по добавлении путей в PYTHONPATH.
  3. site — Конфигурация на уровне сайта — Документация Python — пошаговое описание использования .pth файлов для изменения путей Python.
  4. Виртуальные среды и пакеты — Документация Python — обзор использования виртуальных сред для управления пакетами Python.
  5. Установка пакетов — Руководство пользователя по пакетированию Python — подробная инструкция по установке Python-пакетов через pip.
  6. python-dotenv · PyPI — подробный гайд по управлению окружением с помощью файлов .env.
  7. Как задать системные переменные окружения в Windows 10? – Super User — пошаговое руководство по настройке системных переменных окружения в Windows.