153👍
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')
4👍
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.
- [Django]-Django Cannot set values on a ManyToManyField which specifies an intermediary model. Use Manager instead
- [Django]-Multiple ModelAdmins/views for same model in Django admin
- [Django]-Django-social-auth django-registration and django-profiles — together
0👍
There’s a package that can do this for you automatically called pipreqs. Here’s a simple implementation:
pip install pipreqs
pipreqs /path/to/project
This will automatically create a requirements.txt
in the directory in which you point the package.
- [Django]-Django – filtering on foreign key properties
- [Django]-How to debug in Django, the good way?
- [Django]-Django REST framework serializer without a model
-2👍
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.
- [Django]-Django substr / substring in templates
- [Django]-Django Cannot set values on a ManyToManyField which specifies an intermediary model. Use Manager instead
- [Django]-How to create a Django queryset filter comparing two date fields in the same model