17

mkvirtualenvつまり、とmkprojectコマンドの違いは何ですか?

次のようなワークフローがあります。

/dev
    projectA
        appA
        appB
    projectB
        appA
        appB

すべてのアプリはいくつかのリソース(South、pep8など)を共有しますが、他のリソースは各アプリに固有です。これらの依存関係を分離しておくために、virtualenvwrapper「プロジェクト」を使用する必要がありますか?

4

2 に答える 2

23

ドキュメントの私の理解から、mkvirtualenv projectenvという名前の新しい仮想環境を作成するだけprojectenv$WORKON_HOME、という名前の新しい仮想環境と;という名前の新しいディレクトリをmkproject projectenv作成します。作成後、ディレクトリは自動的に現在の作業ディレクトリになります。仮想環境はに存在し、開発ディレクトリはに存在します。projectenvprojectenvprojectenv$WORKON_HOME$PROJECT_HOME

mkproject正しく機能させるには、最初に環境変数PROJECT_HOMEを、プロジェクトを作成するディレクトリの名前に設定する必要があることに注意してください。$WORKON_HOMEこれは、変数を設定したり、オンザフライで設定したりするのと同じ場所で行うことができます。

export PROJECT_HOME=$HOME/src/allprojects 
mkproject mynewproject

mynewprojectこれで現在の仮想環境になり、新しいmynewprojectディレクトリがに存在し~/src/allprojectsます。

于 2012-02-24T04:48:19.690 に答える
3

mkvirtualenvは、python virtualenvsの管理を容易にするvirtualenvwrapperからのコマンドですが、mkprojectは、プロジェクトを管理するためのvirtualenvwrapperプラグインから提供されます(virtualenvwrapperに直接統合されています)。

プラグインページには、次の機能が記載されています。

virtualenv環境とともに開発プロジェクトの作業ディレクトリを管理します。新しい環境を一貫してすばやく作成するためのテンプレートを作成するためのAPIを定義します。virtualenvwrapperのworkonコマンドを使用して、プロジェクトを切り替えます。新しいプロジェクトをカスタマイズするためのユーザー設定可能なフック。

virtualenvコマンドを使用するために、virtualenvwrapperプラグインを使用してプロジェクトを作成または管理する必要はありません。これは、workonコマンドを発行するときにプロジェクトディレクトリにスワップしたり、テンプレートから新しいプロジェクトを作成したりするための便利なプラグインです。

正しいフラグを使用する場合、virtualenv自体には、システムのサイトパッケージを除いてライブラリ共有機能がありません。とりわけこの能力をあなたに与えるプロジェクトに一度遭遇しましたが、二度とそれを見つけることはありませんでした。

編集:virtualenvwrapperには、virtualenvsをコピーし、ライブラリを共有するためにvirtualenvPATHにディレクトリを追加する機能が追加されました。

于 2011-11-29T12:09:22.783 に答える