


Чтобы пакеты одного Python-проекта не мешали другому, создайте отдельное виртуальное окружение: python -m venv .venv. Затем запускайте код и pip именно через его интерпретатор. Активация удобна, но не обязательна: явный путь к Python помогает избежать ситуации, когда пакет установлен, а программа его не видит.
В разборе Mentoring.digital соберём минимальное окружение и проверим его до установки зависимостей. Команды выполняйте в папке учебного проекта, где ещё нет каталога .venv.
Для PowerShell в Windows:
python -m venv .venv
.\.venv\Scripts\python.exe -c "import sys; print(sys.executable)"
.\.venv\Scripts\python.exe -m pip --version
Для Linux и macOS:
python3 -m venv .venv
.venv/bin/python -c "import sys; print(sys.executable)"
.venv/bin/python -m pip --version
Команда создания использует тот Python, которым она запущена. Если на компьютере несколько версий, сначала проверьте python --version или python3 --version. Для проекта с требованием конкретной версии выбирайте её явно, а не рассчитывайте на первое совпадение в PATH.
Путь из sys.executable должен вести внутрь нового окружения. В выводе pip также проверьте расположение пакета и версию Python. Само появление папки .venv не доказывает, что редактор начал её использовать.
В PowerShell активация выглядит как .\.venv\Scripts\Activate.ps1, а в bash или zsh как source .venv/bin/activate. После неё можно писать python -m pip без длинного пути. Команда deactivate возвращает прежнее окружение оболочки.
Если PowerShell запрещает запуск скрипта активации, для работы с проектом не требуется менять системную политику. Используйте прямой путь к python.exe, как в первом блоке. Виртуальное окружение при этом работает.
Например, пакет requests устанавливают командой .\.venv\Scripts\python.exe -m pip install requests в Windows или .venv/bin/python -m pip install requests в Linux и macOS. Выполняйте её только если requests действительно нужен проекту. Для существующего проекта сначала прочитайте его инструкцию и файл зависимостей.
sys.executable в том процессе, где возникает ошибка: терминал и запуск из IDE могут использовать разные интерпретаторы.-m pip show requests, заменив requests на имя устанавливаемого пакета.Не устанавливайте случайные пакеты по названию из ошибки. Ошибка может относиться к собственному модулю проекта или необязательной зависимости. Сначала прочитайте traceback и документацию используемой библиотеки. Случайная смена pip не исправляет неверную структуру импортов.
Храните исходный код вне .venv. Окружение не стоит копировать на другой компьютер или включать в Git: его пересоздают по описанию зависимостей. Команда python -m pip freeze показывает установленные пакеты, но сама по себе не объясняет, какие из них проекту действительно нужны.
Контрольная задача: откройте второй терминал без активации и запустите программу прямым путём к Python из .venv. Сверьте путь интерпретатора в обоих запусках. Если одинаковый код работает по-разному, сравните зависимости, рабочий каталог и переменные окружения, а не только название папки.
На курсе Python с личным планом настройку окружения можно связать с первым рабочим скриптом. Если уже есть ошибка импорта, наставнику по Python полезно показать traceback, команду запуска и путь интерпретатора. Само venv изолирует зависимости, но не служит защитной песочницей для непроверенного кода.