Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to export virtualenv?

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.

like image 693
mnowotka Avatar asked Feb 04 '13 10:02

mnowotka


People also ask

Can I export my Python environment?

You can use Anaconda to export a Python virtual environment to a YAML file you can then reuse in different projects. You can also share the YAML file with your team, so everyone's on the same track.

How do you share virtual environments?

Simply copy the folder related to the virtal environment to your other computer or sync the folder using rsyncd to avoid having several different versions. The virtual environment folders can be found in ~/. virtualenvs on a standard Ubuntu installation.

Can we copy virtualenv?

We need to run the following command providing the path of the original virtualenv directory and the target directory. That is it. The new virtual environment will be cloned to the target directory. We can go to the target directory, activate the virtual environment, and get started.


2 Answers

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') 
like image 173
Bibhas Debnath Avatar answered Oct 06 '22 08:10

Bibhas Debnath


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.

like image 35
Shon Avatar answered Oct 06 '22 10:10

Shon