Подтвердить что ты не робот

Как экспортировать virtualenv?

Я новичок в virtualenv, но я пишу приложение django, и, наконец, мне придется его каким-то образом развернуть.

Так что давайте предположим, что у меня есть приложение, работающее над моим локальным virtualenv, где я установил все необходимые библиотеки. Теперь я хочу запустить какой-то script, который возьмет мой virtualenv, проверит, что установлено внутри, и создаст script, который установит все эти библиотеки на новый virtualenv на другой машине. Как это можно сделать? Пожалуйста, помогите.

4b9b3361

Ответ 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, но разработчики предупреждают здесь:

Предупреждение

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

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