Sì, penso che si dovrebbe usare virtualenv per ricorrere ad esso in produzione. Rende le cose molto più semplici e più pulite per te, specialmente se prevedi di distribuire più servizi, ad es. siti web basati su Django o altri progetti Python. Non vuoi che ognuno di loro stia inquinando l'ambiente Python globale con i loro pacchetti.
Penso che virtualenv ti aiuterà a gestire in modo pulito tutte le tue dipendenze.
di aggiornare il tuo env produzione tutto quello che dovete fare è:
pip -r name_of_your_requirements_file.txt
Io uso virtualenvs in produzione, e si può usare uWSGI per servire le applicazioni, con Cherokee come un server web.
Per utilizzare il virtualenv in produzione, è necessario aggiungerne il percorso al PYTHONPATH.
Ad esempio se il vostro ENV ha il percorso "/ home/www/my_project/ENV /", il percorso per aggiungere sarebbe:
/home/www/env/lib/python2.7/site-packages/
È possibile impostare questa funzione in molti modi diversi, ma se si sta generando il tuo fcgi o interfaccia uWSGI attraverso manage.py, è sufficiente aggiungere il seguente nella parte superiore del vostro manage.py (prima che il resto):
import os
my_virtualenv_path = "/home/www/my_project/env/lib/python2.7/site-packages/"
# Add it to your PYTHONPATH
os.path.append(my_virtualenv_path)
È possibile adattare questo al vostro setup, solo in caso si potrebbe anche fare quanto segue nella shell:
export PYTHONPATH:$PYTHONPATH:/home/www/my_project/env/lib/python2.7/site-packages/
Sarà inoltre necessario aggiungere la directory che contiene il file settings.py al PYTHONPATH, quindi Django sarà in grado di scoprirlo. Procedi in modo simile per farlo.
Si noti che la documentazione ufficiale di Django menziona l'utilizzo di virtualenv in produzione: https://docs.djangoproject.com/en/dev/howto/deployment/wsgi/modwsgi/#using-a-virtualenv –
Mi raccomando il tutorial di @ Bartek [La bella semplicità di un nginx e uWSGI Deployment] (http://bartek.im/blog/2012/07/08/simplicity-nginx-uwsgi-deployment.html) –
Heroku lo raccomanda: https: // DevCenter. heroku.com/articles/deploying-python –