Все эти проблемы с окружением довольно распространены, когда вы занимаетесь разработкой на python / django!Я прошел через все эти проблемы и проверил некоторые решения!Вещи, которые я протестировал:
- Проект, работающий локально
- Проект, запущенный в virtualenv
- Проект, запущенный на виртуальной машине
- Проект, запущенный на виртуальной машине, используя vagrant
Лучшее решение, которое я нашел, было # 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.это действительно обычная библиотека, но если всем в вашей команде приходится тратить время на решение этих проблем, это совсем не хорошо!