Python LinuxWindowsmacOS

Python: venv перестаёт работать после перемещения папки проекта

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

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

После переноса папки проекта перестало работать виртуальное окружение venv: сохраните список зависимостей, создайте новое окружение в новом расположении и перенастройте редактор.

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

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

Python venv содержит абсолютные пути в скриптах и конфигурации, поэтому копирование .venv вместе с каталогом проекта не гарантирует работоспособность. При запуске встречаются bad interpreter, No such file or directory, пути к старой папке и ошибки активации.

#Как отличить причины

Возможная причинаКак узнатьЧто делать
В скриптах остаётся старый путьИсполняемые файлы в .venv/bin или .venv/Scripts ссылаются на прежнее расположение.Ошибка содержит старый путь.Создайте новое venv на новом месте.
Изменился базовый PythonНа другом ПК/сервере другая версия Python или отсутствует исходный интерпретатор.pyvenv.cfg содержит старый home, приложение не стартует.Установите поддерживаемый Python и пересоздайте окружение.
Редактор хранит путь старого venvVS Code/PyCharm продолжает выбирать старый интерпретатор.Прямой вызов нового Python работает, кнопка редактора — нет.Поменяйте интерпретатор проекта.

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

  1. Сохраните проект и описание зависимостейПеред действиями сделайте копию исходников, файлов .env отдельно от общего архива и базы данных, если она внутри папки проекта. Найдите requirements.txt, pyproject.toml либо файл блокировки зависимостей. Если этих файлов нет, а старое окружение ещё работает, в старом месте сохраните список пакетов командой python -m pip freeze > requirements-migration.txt; не публикуйте файл, если там приватные адреса репозиториев.
  2. Не пытайтесь лечить старый venv правкой одного путиОткройте перенесённую папку в файловом менеджере. Убедитесь, что исходные .py и конфигурация проекта сохранены. Папку .venv пока не удаляйте — переименуйте её, например в .venv-old, чтобы сохранить откат. Если окружение не называется .venv, используйте его реальное имя.
  3. Проверьте установленную версию PythonВ терминале проекта выполните python3 --version для Linux/macOS или py --version для Windows с официальным Python Launcher. Убедитесь, что версия соответствует проекту и доступна в новом месте. Если команда не найдена, настройте установку Python штатными средствами ОС до пересоздания venv.
  4. Создайте новое виртуальное окружениеОткройте терминал из новой папки проекта: в VS Code «Терминал → Создать терминал», затем cd в нужный каталог. Выполните python3 -m venv .venv на Linux/macOS или py -m venv .venv на Windows. Ожидается папка .venv без ошибок; права администратора обычно не нужны. Если модуль venv отсутствует в системной установке Linux, попросите администратора установить штатный пакет окружений.
  5. Установите зависимости без активации окруженияНа Linux/macOS выполните .venv/bin/python -m pip install -r requirements.txt, на Windows — .venv\Scripts\python.exe -m pip install -r requirements.txt, заменив имя requirements на действительный файл. Если используется менеджер Poetry/PDM/uv, следуйте штатной команде конкретного проекта и его файлу блокировки вместо неподходящего requirements. Установка может скачивать пакеты из сети; при ошибке не удаляйте старую среду.
  6. Перевыберите Python в IDE и путях запускаВ VS Code откройте палитру Ctrl+Shift+P → Python: Select Interpreter, затем выберите новый .venv. Для задания cron, службы systemd и сценариев запуска проверьте абсолютные пути и исправьте их с резервной копией конфигурации. Если используется shebang #!/старый/путь/..., переустановите пакет со скриптами в новом venv вместо ручной правки десятков файлов.
  7. Проверьте исполнение и удаляйте старую среду только позжеЗапустите через новый .venv/bin/python или .venv\Scripts\python.exe основную программу и тесты проекта. Проверьте импорт ключевых библиотек и значения sys.executable. После подтверждения работы и отдельной резервной копии можно удалить .venv-old, но не удаляйте её до принятия изменений. При неуспехе вернитесь к прежнему расположению и посмотрите точный текст ошибки установки.

#Команды и примеры для проверки

Linux · Терминал (Bash)С осторожностью
Linux/macOS: из папки проекта. Первая команда создаёт каталог; вторая только проверяет pip. Не выполняйте поверх старого .venv, предварительно переименуйте его.
python3 -m venv .venv
.venv/bin/python -m pip --version

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

Windows · PowerShellС осторожностью
Windows: откройте PowerShell в папке проекта. Создаёт и проверяет окружение; активация PowerShell не обязательна.
py -m venv .venv
.venv\Scripts\python.exe -m pip --version

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

#Как проверить результат и что делать дальше

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

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

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