Подтвердить что ты не робот

Межплатформенный интерфейс для virtualenv

Я разработал весь проект (Django, Python) в Windows, и все PaaS там используют Linux.

VirtualEnv on Linux:

VirtualEnv_dir /
                 bin/ activate, activate_this.py
                 include /
                 lib /
                 local /

VirtualEnv of Windows:

VitualEnv_dir /
                Include/
                Lib /
                Scripts/ activate.bat, activate_this.py

Поскольку virtualenv сильно отличается в Windows и Linux. Как мне нужно использовать мои виниловые окна на PaaS?

Edit:

Если я нахожусь в окнах, мне нужно запустить call virtualenv_dir/scripts/activate.bat, чтобы войти в него. Где, как в Linux, есть что-то source virtualenv_dir/bin/activate.

Теперь мое репо содержит виртуальный файл, созданный с использованием Windows (который использует .bat). Когда я нажимаю репо на систему Linux, как я могу ее запустить? (файлы bat не будут работать!)

Я использую OpenShift PaaS, где я хотел бы поставить virtualenv на Git repo. Как я могу активировать его?

Какое лучшее решение

4b9b3361

Ответ 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.

Как только вы решите, какой процесс работает для вас, вы затем автоматизируете его в сценариях развертывания; как правило, с помощью крючков в систему управления исходным кодом. Некоторые люди предпочитают отдельный процесс разработки релиза (с менеджером релиза - это человек, а не программа).