Все эти проблемы с окружением являются обычным явлением, когда вы занимаетесь разработкой на python / django! Я прошел через все эти проблемы и протестировал некоторые решения! Вещи, которые я тестировал:
- Проект работает на местном уровне
- Проект работает в virtualenv
- Проект работает на виртуальной машине
- Проект запущен в виртуальной машине с использованием бродяг
Лучшее решение, которое я нашел, было №4! потому что в компании, в которой я работал, у каждого человека в команде своя ОС, всевозможные окна, Mac и Linux, и для установки всех зависимостей для каждой среды требуется время! Поэтому мы решили попробовать virtualenv, и это действительно хорошо! но все же каждый человек должен настраивать свое собственное окружение. Проблема virtualenv в том, что все источники Python находятся в среде, которую вы создаете! Поэтому я бы не стал передавать эти файлы в систему контроля версий! Лучшее решение было №4, потому что это было именно то, что мне было нужно, Vagrant использует Chef для настройки вашей среды, так что вам просто нужно написать несколько рецептов и позволить vagrant запустить их за вас! Затем вы отправляете эти рецепты в SCM, а затем, когда следующий человек получит файлы из SCM и перезагрузит виртуальную машину, все зависимости будут установлены автоматически!
У меня есть сообщение в блоге, объясняющее больше по этому поводу, а также я создал проект Django Blank в github, чтобы вы могли получить его, чтобы иметь начальную точку вашего проекта с помощью vagrant.
http://arthurnn.com/blog/2011/11/25/easy-django-quickstart/ (ссылка больше не активна, поэтому связана с Wayback Machine)
РЕДАКТИРОВАТЬ
Решение от Криса Пратта тоже хорошее, однако некоторые библиотеки не так просто установить во всех ОС, например, у многих людей на 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
.