17

プロジェクト全体 (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

WindowsとLinuxではvirtualenvが大きく異なるためです。PaaS で Windows virtualenv を使用するにはどうすればよいですか?

編集:

Windows を使用している場合は、実行call virtualenv_dir/scripts/activate.batする必要があります。Linux のように、その何かsource virtualenv_dir/bin/activate.

現在、私のレポは、Windows (.bat を使用) を使用して生成された virtualenv を保持しています。リポジトリを Linux システムにプッシュする場合、どのように実行できますか? (bat ファイルは機能しません!)

Git リポジトリに virtualenv を配置したい OpenShift PaaS を使用しています。どうすれば有効にできますか?

最善の解決策は何ですか

4

1 に答える 1

29

一部の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ユーティリティを使用してそれらをインストールできることです。

どのプロセスが適切かを決定したら、デプロイメントスクリプトでそれを自動化します。通常、ソースコード管理システムへのフックがあります。一部の人々は、別個のリリースエンジニアリングプロセスを好みます(リリースマネージャーを使用する-つまり、プログラムではなく人です)。

于 2012-08-20T08:27:40.053 に答える