Как экспортировать virtualenv?
Я новичок в virtualenv, но я пишу приложение django, и, наконец, мне придется его каким-то образом развернуть.
Так что давайте предположим, что у меня есть приложение, работающее над моим локальным virtualenv, где я установил все необходимые библиотеки. Теперь я хочу запустить какой-то script, который возьмет мой virtualenv, проверит, что установлено внутри, и создаст script, который установит все эти библиотеки на новый virtualenv на другой машине. Как это можно сделать? Пожалуйста, помогите.
Ответы
Ответ 1
Вы не копируете вставку своего виртуального. Вы экспортируете список всех пакетов, установленных как -
pip freeze > requirements.txt
Затем нажмите файл requirements.txt
в любом месте, где вы хотите развернуть код, а затем просто сделайте то, что вы сделали на dev машине -
$ 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')
Ответ 2
Если он будет находиться на том же пути, вы можете удалить его и извлечь его на другой компьютер. Если на целевом компьютере доступны все те же зависимости, библиотеки и т.д., Он будет работать.
Ответ 3
Вы можете установить virtualenvwrapper и попробовать cpvirtualenv, но разработчики предупреждают здесь:
Предупреждение
Копирование виртуальных сред не поддерживается. Каждый виртуальный содержит информацию о пути, жестко закодированную в ней, и могут быть случаи, когда код копирования не знает, что ему необходимо обновить конкретный файл. использование с осторожностью.
Я еще не тестировал это достаточно, но я обновлю это после того, как я знаю, насколько хорошо (или плохо) это работает.