Как экспортировать 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 имеет жестко запрограммированную информацию о пути, и могут быть случаи, когда код копии не знает, что ему нужно обновить конкретный файл. Используйте с осторожностью.

Я еще не проверил это достаточно, но я обновлю здесь, когда я знаю, насколько хорошо (или плохо) это работает.

Если он будет идти по тому же пути, вы можете смонтировать его и извлечь на другом компьютере. Если на целевой машине имеются все те же зависимости, библиотеки и т. Д., Это сработает.

Другие вопросы по тегам