Oui, je pense que vous devriez utiliser virtualenv à déployer en production. Cela rend les choses beaucoup plus facile et plus propre pour vous, surtout si vous prévoyez de déployer de multiples services, par exemple, django sites web ou d'autres python projets. Vous ne voulez pas que chacun d'eux à polluer l'global environnement python avec leurs paquets.
Je pense que virtualenv pour vous aider à gérer tous vos dépendances proprement.
Pour mettre à jour votre production env tout ce que vous devez faire est de:
pip -r name_of_your_requirements_file.txt
J'utilise virtualenvs dans la production, et vous pouvez les utiliser uWSGI pour servir les applications, avec Cherokee comme un serveur web.
Pour utiliser votre virtualenv en production, vous aurez besoin d'ajouter son chemin d'accès à votre PYTHONPATH.
Par exemple, si votre env est le chemin "/home/www/my_project/env/", le chemin serait:
/home/www/env/lib/python2.7/site-packages/
Vous pouvez faire cela de différentes façons, mais si vous êtes de la génération de votre FCGI ou uWSGI de l'interface par le biais de manage.py, il suffit d'ajouter le texte suivant à la très haut de votre manage.py (avant le reste):
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)
Vous pouvez l'adapter à votre configuration, juste au cas où vous pouvez également faire de la suivante dans le shell:
export PYTHONPATH:$PYTHONPATH:/home/www/my_project/env/lib/python2.7/site-packages/
Vous devrez également ajouter le répertoire qui contient vos settings.py fichier pour le PYTHONPATH, de sorte que Django sera en mesure de le découvrir. Il vous suffit de procéder de façon similaire pour le faire.