How to export virtualenv?

PythonDjangoVirtualenv

Python Problem Overview


I'm new to virtualenv but I'm writting django app and finally I will have to deploy it somehow.

So lets assume I have my app working on my local virtualenv where I installed all the required libraries. What I want to do now, is to run some kind of script, that will take my virtualenv, check what's installed inside and produce a script that will install all these libraries on fresh virtualenv on other machine. How this can be done? Please help.

Python Solutions


Solution 1 - Python

You don't copy paste your virtualenv. You export the list of all the packages installed like -

pip freeze > requirements.txt

Then push the requirements.txt file to anywhere you want to deploy the code, and then just do what you did on dev machine -

$ virtualenv <env_name>
$ source <env_name>/bin/activate
(<env_name>)$ pip install -r path/to/requirements.txt

And there you have all your packages installed with the exact version.

You can also look into Fabric to automate this task, with a function like this -

def pip_install():
    with cd(env.path):
        with prefix('source venv/bin/activate'):
            run('pip install -r requirements.txt')

Solution 2 - Python

You can install virtualenvwrapper and try cpvirtualenv, but the developers advise caution here:

> Warning > > Copying virtual environments is not well supported. Each virtualenv > has path information hard-coded into it, and there may be cases where > the copy code does not know it needs to update a particular file. Use > with caution.

Solution 3 - Python

If it is going to be on the same path you can tar it and extract it on another machine. If all the same dependencies, libraries etc are available on the target machine it will work.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionmnowotkaView Question on Stackoverflow
Solution 1 - PythonBibhas DebnathView Answer on Stackoverflow
Solution 2 - PythonShonView Answer on Stackoverflow
Solution 3 - PythonSigurdur Þorfinnur EinarssonView Answer on Stackoverflow