Так, я думаю, вам слід використовувати virtualenv для його розгортання у виробництві. Це робить речі набагато простішими та чистішими для вас, особливо якщо ви плануєте розгортати кілька служб, наприклад веб-сайти на основі django чи інші проекти на python. Ви не хочете, щоб кожен із них забруднював глобальне середовище python своїми пакетами.
Думаю, virtualenv допоможе вам чітко керувати всіма своїми залежностями.
Щоб оновити виробниче середовище, потрібно лише:
pip -r name_of_your_requirements_file.txt
Я використовую virtualenvs у виробництві, а ви можете використовувати uWSGI для обслуговування програм, а Cherokee є веб-сервером.
Щоб використовувати ваш virtualenv у виробництві, вам потрібно буде додати його шлях до вашого PYTHONPATH.
Наприклад, якщо у вашому env є шлях "/ home / www / my_project / env /", шлях для додавання буде таким:
/home/www/env/lib/python2.7/site-packages/
Ви можете налаштувати це різними способами, але якщо ви створюєте інтерфейс FCGI або uWSGI за допомогою manage.py, просто додайте наступне у верхній частині вашого manage.py (перед рештою):
import os
my_virtualenv_path = "/home/www/my_project/env/lib/python2.7/site-packages/"
os.path.append(my_virtualenv_path)
Ви можете адаптувати це до своїх налаштувань, на випадок, якщо ви також можете зробити наступне в оболонці:
export PYTHONPATH:$PYTHONPATH:/home/www/my_project/env/lib/python2.7/site-packages/
Вам також потрібно буде додати каталог, що містить файл settings.py, до PYTHONPATH, тому Django зможе його виявити. Просто виконайте подібні дії, щоб зробити це.