Всі ці клопоти навколишнього середовища є типовими явищами, коли ви розробляєте python / django! Я пройшов через усі ці проблеми і перевірив деякі рішення! Те, що я перевірив:
- Проект виконується локально
- Проект працює у virtualenv
- Проект, що працює у віртуальній машині
- Проект, що працює у віртуальній машині, з використанням бродяги
Найкращим рішенням, яке я знайшов, було №4! оскільки в компанії, в якій я працював, кожна людина в команді має різну ОС, всі види Windows, mac та linux, і для встановлення всіх залежностей для кожного середовища потрібен час! Тому ми вирішили спробувати virtualenv, що справді добре! але все-таки кожна людина повинна налаштувати своє оточення. Проблема virtualenv полягає в тому, що всі джерела python знаходяться в середовищі, яке ви створюєте! Тож я б не надсилав ці файли до вихідного контролю версій! Найкращим рішенням було №4, адже саме це було те, що мені потрібно, Vagrant використовує Chef для налаштування вашого середовища, тому вам просто потрібно написати кілька рецептів і дозволити бродягам запускати їх за вас! Потім u надсилайте ці рецепти до SCM, тоді, коли наступна особа отримає файли з SCM і перезавантажить віртуальну машину, всі залежності будуть автоматично встановлені!
У мене є публікація в блозі, яка детальніше розповідає про цю тему, а також створила проект Django Blank у github, щоб ви могли отримати це, щоб мати початкову точку вашого проекту за допомогою vagrant.
http://arthurnn.com/blog/2011/11/25/easy-django-quickstart/ (посилання більше не активне, тому пов'язане з Wayback Machine)
РЕДАГУВАТИ
Рішення від Chris Pratt також є хорошим, проте деякі бібліотеки не так просто встановлювати у всіх ОС, наприклад, багато людей на Mac отримують проблеми, коли хочуть встановити MySQLdb-python. що є справді загальною бібліотекою, але якщо кожному у вашій команді доводиться витрачати час на вирішення цих питань, це зовсім не добре!
~/path/to/virtualenv/bin/pip freeze > ~/path/to/repo/requirements.txt
. Інші розробники повинні налаштувати свій власний virtualenv, але це буквально дві команди -virtualenv ~/path/to/env
,~/path/to/env/bin/pip install -r ~/path/to/requirements.txt
.