Как продублировать virtualenv - PullRequest
       5

Как продублировать virtualenv

109 голосов
/ 16 сентября 2011

У меня есть среда в virtualenv, с множеством пакетов, но старой версией Django.

Что если я захочу продублировать эту среду,
поэтому у меня может быть другая среда, в которой я могу установить более новую версию Django,
с сохранением всех пакетов, которые уже находятся в другой среде?

Ответы [ 5 ]

153 голосов
/ 16 сентября 2011

Самый простой способ - использовать pip для создания файла требований.Файл требований - это, в основном, файл, содержащий список всех пакетов Python, которые вы хотите установить (или уже установили в случае файла, сгенерированного pip), и их версии.

Для генерациифайл требований, перейдите в исходный файл virtualenv и запустите:

pip freeze > requirements.txt

. Это создаст для вас файл needs.txt .Если вы откроете этот файл в своем любимом текстовом редакторе, вы увидите что-то вроде:

Django==1.3
Fabric==1.0.1
etc...

Теперь отредактируйте строку, которая говорит Django==x.x, чтобы сказать Django==1.3 (или любую другую версию, которую вы хотитеустановите в свой новый virtualenv).

Наконец, активируйте свой новый virtualenv и выполните:

pip install -r requirements.txt

И pip автоматически загрузит и установит все перечисленные модули pythonв вашем файле needs.txt и в любых версиях, которые вы указали!

24 голосов
/ 24 мая 2013

Другой вариант - использовать пакет virtualenv-clone:

Скрипт для клонирования не перемещаемого virtualenv.

11 голосов
/ 04 мая 2017

virtualenvwrapper предоставляет команду для дублирования virtualenv

cpvirtualenv ENVNAME [TARGETENVNAME]
3 голосов
/ 03 июня 2018

Если вы используете Анаконда , вы можете просто запустить:

conda create --name myclone --clone myenv

Это скопирует myenv во вновь созданную среду с именем myclone.

0 голосов
/ 16 сентября 2011

Можете ли вы не просто:

  • Скопируйте существующий виртуальный каталог env в новый
  • Обновление до нового Django?
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...