У меня уже есть virtualenv с большим количеством пакетов, но старая версия Django.
Я хочу продублировать эту среду, чтобы у меня была другая среда с точно такими же пакетами, но с более новой версией Django. Как я могу это сделать?
python
django
virtualenv
dolma33
источник
источник
virtualenv -p /path/to/older/venv/bin/python new_venv
и затем использоватьrequirements.txt
созданную послеpip freeze
Ответы:
Самый простой способ - использовать pip для создания файла требований. Файл требований - это в основном файл, который содержит список всех пакетов Python, которые вы хотите установить (или уже были установлены в случае файла, созданного pip), и их версий.
Чтобы создать файл требований, войдите в исходный файл virtualenv и запустите:
Это сгенерирует для вас файл requirements.txt . Если вы откроете этот файл в своем любимом текстовом редакторе, вы увидите что-то вроде:
Теперь отредактируйте строку,
Django==x.x
в которой говоритсяDjango==1.3
(или любую другую версию, которую вы хотите установить в своем новом virtualenv).Наконец, активируйте свой новый virtualenv и запустите:
И pip автоматически загрузит и установит все модули python, перечисленные в вашем файле requirements.txt , в любых версиях, которые вы указали!
источник
Could not find a version that satisfies the requirement a_package=#.#.#
Могу ли я решить эту проблему легко? Я удалил строчку или заменил равенство на неравенство.pyenv
. Отличный ответ.Другой вариант - использовать
virtualenv-clone
пакет:источник
virtualenv-clone
после активации virtualenvvirtualenvwrapper
предоставляет команду для дублирования virtualenvисточник
Если вы используете Anaconda, вы можете просто запустить:
Это будет скопировано
myenv
во вновь созданную среду с именемmyclone
.источник
Самый простой вариант - использовать
virtualenv-clone
package.Для того, чтобы дублировать
venv1
наvenv2
, выполните следующие действия:Установите
virtualenv-clone
в любойvenv1
виртуальной среде или в фиктивной виртуальной средеvenv_dummy
. Для созданияvenv_dummy
:Для установки
virtualenv-clone
:Для копирования
venv1
наvenv2
:источник
bin/activate
если вы последуете этому ответу. Почему нужно редактироватьbin/activate
?bin/activate
Можно не просто:
источник