pip WindowsLinuxmacOSPython 3

pip: После удаления venv pip ссылается на старое окружение

  • Обновлено
  • Чтение ≈ 3 минуты

Краткий ответ

После удаления или перемещения виртуального окружения команда pip может сообщать bad interpreter, No such file or directory либо указывать на старый путь. Скрипты запуска внутри venv обычно не предназначены для переноса между каталогами.

В этой статье
  1. Что происходит и когда возникает ошибка
  2. Причины и признаки
  3. Подробная диагностика и исправление
  4. Проверка результата и действия при неуспехе

#Что происходит и когда возникает ошибка

После удаления или перемещения виртуального окружения команда pip может сообщать bad interpreter, No such file or directory либо указывать на старый путь. Скрипты запуска внутри venv обычно не предназначены для переноса между каталогами.

#Причины и признаки

Возможная причинаКак узнатьЧто делать
Устаревший исполняемый файл pipОбёртка pip была создана с абсолютным путём к Python.Строка shebang указывает на прежнюю .venvПересоздать окружение в текущем каталоге.
PATH всё ещё содержит старую папкуОболочка выбирает старую запись перед новой.where/command -v pip показывает удалённый каталогЗакрыть терминал, изменить локальный PATH, запустить .venv Python.
Редактор сохранил удалённый интерпретаторВ конфигурации проекта остался старый адрес.IDE пишет Python executable not foundВыбрать исполняемый Python новой среды.

#Подробная диагностика и исправление

  1. Зафиксируйте ошибку и сохраните зависимостиЕсли старое окружение ещё существует, сначала экспортируйте python -m pip freeze из него. Если уже удалено, найдите исходный requirements.txt, pyproject.toml или другой официальный список зависимостей проекта; не восстанавливайте весь глобальный Python по памяти.
  1. Проверьте исполняемые файлы в текущей оболочкеВ Linux/macOS запустите command -v pip и command -v python; в Windows PowerShell — Get-Command pip -All. Если путь ведёт в удалённую .venv-old, больше не используйте этот исполняемый файл. Новый терминал сбрасывает временную активацию.
    Linux · Терминал (Bash)Команда
    Linux/macOS; в Windows PowerShell: Get-Command python -All; Get-Command pip -All.
    command -v python
    command -v pip
  1. Создайте новое окружение, не перетирая исходникиВ корне проекта проверьте Python базовой версии, затем создайте .venv-new. Наличие pyvenv.cfg, bin/python или Scripts/python.exe подтверждает создание; простое копирование старой .venv не рекомендуется.
    Linux · Терминал (Bash)Команда
    Выполняйте из корня проекта обычным пользователем.
    python -m venv .venv-new
  1. Установите зависимости зановоИспользуйте Python именно нового окружения. В Linux/macOS запустите команду ниже, в Windows замените начало на .\.venv-new\Scripts\python.exe. Если нет исходного списка зависимостей, вернитесь к документации приложения и устанавливайте только требуемое.
  2. Дополнительная команда по теме
    Linux · Терминал (Bash)С осторожностью
    Только если requirements.txt существует; установка меняет лишь .venv-new, нужен доступ к доверенному источнику.
    ./.venv-new/bin/python -m pip install -r requirements.txt

    Команда может изменить состояние системы или её настройки. Проверьте параметры и последствия перед запуском.

  1. Обновите путь в запуске и редактореВ IDE откройте выбор интерпретатора проекта и укажите Python из .venv-new. Для системного задания/службы исправьте путь в её конфигурации после согласования с владельцем; не заменяйте путь к общесистемному Python.
  1. Проверяйте команду через -m, а не старую обёрткуВыполните python -m pip --version именно новым Python, а затем pip check. При успехе новая среда уже может выполнять программы; если проблема осталась, ищите старые пути в скриптах запуска и настройках оболочки.
  2. Linux/macOS
    Linux · Терминал (Bash)Команда
    Linux/macOS. Windows: используйте .\.venv-new\Scripts\python.exe вместо ./ .venv-new/bin/python.
    ./.venv-new/bin/python -m pip --version
    ./.venv-new/bin/python -m pip check
  1. Удалите остатки только после испытанийЗапустите приложение и убедитесь, что версия и зависимости правильные. Только после этого можно вручную удалить старую, точно идентифицированную папку окружения — не удаляйте родительский каталог проекта и не выполняйте автоматические рекурсивные удаления по шаблонам.

#Проверка результата и действия при неуспехе

python -m pip --version показывает новую папку .venv-new, а запуск программы не ссылается на старый каталог.

Если исправление не помогло, вернитесь к точному сообщению об ошибке, сохраните версию Python, адрес целевого окружения и очищенный от секретов журнал; выясните, на каком шаге результат отличается от ожидаемого. Не изменяйте глобальный Python ради устранения сбоя проекта.

Так эту ошибку тоже называют

Источники и обновления

Последнее обновление статьи: 2 ноября 2026. Версии программ и интерфейсы меняются — если шаги не совпадают с вашей версией, сверяйтесь с документацией производителя.