Ответ 1
Если вы не используете некоторые конкретные библиотеки Windows; или альтернативную реализацию Python (например, IronPython), не о чем беспокоиться.
Многие люди (включая меня) используют Windows для разработки и развертывания в Linux для производства и использования virtualenv для этой цели. Он разработан, чтобы сделать вашу среду переносимой.
Вы не подталкиваете весь virtualenv к Linux.
После того, как ваша виртуальная среда готова и ваш код работает, вы должны заморозить требования к вашему приложению:
pip freeze > requirements.txt
В вашей целевой операционной системе; создать пустую виртуальную среду:
virtualenv --no-site-packages prod_env
В последних версиях virtualenv
значение --no-site-packages
по умолчанию.
Далее, заполните среду с вашим файлом требований из разработки:
source prod_env/bin/activate
pip install -r requirements.txt
При изменении требований просто восстановите файл requirements.txt
и запустите pip install -r requirements.txt
в процессе производства.
В некоторых ситуациях ваши производственные системы не имеют доступа к Интернету для загрузки пакетов, поэтому трюк pip install
не работает. Для этих сценариев вы можете создать собственный частный pypi-сервер и подталкивать туда свои пакеты. Добавленный бонус через этот маршрут состоит в том, что вы можете создавать и нажимать частные пакеты и устанавливать их с помощью обычных утилит setuptools.
Как только вы решите, какой процесс работает для вас, вы затем автоматизируете его в сценариях развертывания; как правило, с помощью крючков в систему управления исходным кодом. Некоторые люди предпочитают отдельный процесс разработки релиза (с менеджером релиза - это человек, а не программа).