Для Python 3.3+ (с новым venv
встроенным модулем)
Краткий ответ (независимо от версии):
- Нет чистого, прямого способа переместить виртуальную среду
- Просто воссоздайте, это просто !!
Длинный ответ:
Начиная с Python v3.3, virtualenv
он стал встроенным модулем с именем venv
.
--relocatable
Вариант уже упоминалось в других ответах не был включен в venv
, и в настоящее время не существует хороший, безопасный способ , который я знаю либо переименованы или переместить виртуальную среду Python.
Однако есть довольно простой способ просто воссоздать виртуальную среду со всеми ее текущими установленными пакетами. См. Этот ответ или информацию о воссоздании виртуальной среды в разделе ниже. Во время этого процесса вы можете воссоздать новую среду в любом месте и с любым именем. Или посмотрите раздел ниже, чтобы узнать о процессе.
В этом ответе он упоминает несколько других сторонних пакетов, которые могут поддерживать прямое переименование или перемещение. Если вы решили найти способ перенести виртуальную среду без изменений, вы можете проверить, работают ли они с этим venv
.
Примечание: в этом ответе основное внимание уделяется virtualenv
, а не venv
. См. Ниже, как перевести.
venv
по сравнению со старым virtualenv
синтаксисом команд
Используемая команда venv
:
python -m venv
а не просто virtualenv
, который устанавливается как команда в исходном пакете. Где «python» относится к тому, как вы запускаете исполняемый файл python, который может быть разнообразным, например:
python
py
или py -3.7
аналогичный ( Python Launcher для Windows для Python 3.3+ и Windows только на данный момент)
python3
(соглашение для сред Linux, в которых устанавливаются два Python 2 и 3)
- Если у вас возникли проблемы, используйте абсолютный путь к исполняемому файлу python, который вы хотите запустить: например,
c:\program files\python37\python.exe
Если вы не уверены, какая версия запущена, вы всегда python --version
можете узнать.
Как воссоздать виртуальную среду
Создавать / воссоздавать виртуальную среду легко и должно стать вашей второй натурой после того, как вы немного поработаете с ними. Этот процесс отражает то, что вы сделали бы для распространения вашего скрипта в виде пакета (с его зависимостями) в первой половине, а затем то, что кто-то сделает, чтобы установить ваш скрипт / пакет для дальнейшей разработки.
Сначала получите обновленный список того, что находится в виртуальной среде. Когда он активен, получите версию Python, которую он использует, и сохраните список зависимостей в файл.
Используйте python --version
с активированной виртуальной средой, чтобы узнать, какую версию Python она использует.
- Это для ясности - вы можете обновить версию Python по разным причинам - по крайней мере, до последней версии патча.
- Например, если существующий venv использует Python v3.7.4, но теперь v3.7.6 отсутствует - используйте вместо него v3.7.6, который должен включать только исправления безопасности и ошибок.
Используйте python -m pip freeze > requirements.txt
для создания списка текущих зависимостей пакета и помещения их в requirements.txt
файл. Эта команда наверняка работает в Linux или Git Bash - не на 100% уверена в Powershell или командной строке в Windows.
Теперь создайте новую виртуальную среду, а затем добавьте зависимости от старой.
Сделайте свой новый Venv.
- Убедитесь, что вы используете правильную версию python, которую хотите установить на venv.
- Если вы хотите, чтобы это была точно такая же версия Python:
- Запустите python прямо из текущей виртуальной среды (с активированной) и просто используйте
python
как команду
- Или используйте абсолютный путь с
python.exe
в папке виртуальной среды
- Для новой записи папки venv в команде:
- Либо добавьте абсолютный, либо относительный путь к желаемой конечной папке.
- Используйте
python -m venv my_new_venv
для создания новой виртуальной среды в текущем рабочем каталоге в новой my_new_venv
папке.
- Имя папки venv будет именем venv (то, что отображается в приглашении, когда оно активировано).
Установите свои зависимости из requirements.txt
файла.
python -m pip install -r requirements.txt
Возможно, вам потребуется переустановить локальные пакеты, находящиеся в режиме разработки.
Обратите внимание: если вам когда-нибудь понадобится увидеть конкретное место, в которое установлен пакет, используйте:
python -m pip list -v
- Параметр
-v
or «verbose» добавит дополнительную информацию о каждом установленном пакете, включая путь, по которому он установлен. Это полезно, чтобы убедиться, что вы правильно поддерживаете виртуальные, пользовательские и системные установленные пакеты.
На этом этапе вы можете просто удалить старую папку venv и все содержимое. Я рекомендую использовать для этого графический интерфейс - удаление файлов из командной строки linux часто происходит навсегда, и небольшая опечатка может быть плохой новостью.