Как экспортировать virtualenv?
Я новичок в virtualenv, но я пишу приложение для django, и, наконец, мне придется как-то его развернуть.
Итак, давайте предположим, что мое приложение работает на моем локальном virtualenv, где я установил все необходимые библиотеки. Теперь я хочу запустить какой-нибудь скрипт, который возьмет мой virtualenv, проверит, что установлено внутри, и создаст скрипт, который установит все эти библиотеки на свежую virtualenv на другой машине. Как это можно сделать? Пожалуйста помоги.
3 ответа
Вы не копируете и не вставляете свою виртуальность. Вы экспортируете список всех установленных пакетов, как -
pip freeze > requirements.txt
Затем нажмите requirements.txt
файл в любое место, где вы хотите развернуть код, а затем просто сделайте то, что вы делали на компьютере разработчика -
$ virtualenv <env_name>
$ source <env_name>/bin/activate
(<env_name>)$ pip install -r path/to/requirements.txt
И там у вас есть все ваши пакеты, установленные с точной версией.
Вы также можете заглянуть в Fabric, чтобы автоматизировать эту задачу, с помощью такой функции:
def pip_install():
with cd(env.path):
with prefix('source venv/bin/activate'):
run('pip install -r requirements.txt')
Вы можете установить virtualenvwrapper и попробовать cpvirtualenv, но разработчики советуют соблюдать осторожность здесь:
Предупреждение
Копирование виртуальных сред не очень хорошо поддерживается. Каждый virtualenv имеет жестко запрограммированную информацию о пути, и могут быть случаи, когда код копии не знает, что ему нужно обновить конкретный файл. Используйте с осторожностью.
Я еще не проверил это достаточно, но я обновлю здесь, когда я знаю, насколько хорошо (или плохо) это работает.
Если он будет идти по тому же пути, вы можете смонтировать его и извлечь на другом компьютере. Если на целевой машине имеются все те же зависимости, библиотеки и т. Д., Это сработает.