129

virtualenv をどこに置くべきか混乱しています。

私の最初のdjangoプロジェクトでは、コマンドでプロジェクトを作成しました

django-admin.py startproject djangoproject

次に、djangoproject ディレクトリに cd し、コマンドを実行しました

virtualenv env

これにより、内部ディレクトリと同じレベルに仮想環境ディレクトリが作成されましたdjangoproject

これは、この特定のプロジェクトの virtualenv を作成する場所が間違っていますか?

私は、ほとんどの人がすべての virtualenv をまったく別のディレクトリ (たとえば) にまとめて保持し、virtualenvwrapper~/virtualenvsを使用してそれらの間を行ったり来たりしているという印象を受けています。

これを行う正しい方法はありますか?

4

5 に答える 5

144

多くの人がvirtualenvwrapperツールを使用しています。これは、すべての virtualenv を同じ場所 (~/.virtualenvsディレクトリ) に保持し、それらを作成してそこに保持するためのショートカットを許可します。たとえば、次のようにします。

mkvirtualenv djangoproject

そして後で:

workon djangoproject

virtualenv ディレクトリをプロジェクト自体に保持するのは、おそらく悪い考えです。これは、配布したくないためです (コンピューターまたはオペレーティング システムに固有のものである可能性があります)。代わりに、pipを使用して requirements.txt ファイルを保持します。

pip freeze > requirements.txt

そしてそれを配布します。これにより、プロジェクトを使用している他のユーザーが、同じ要件をすべて virtualenv に再インストールできるようになります。

pip install -r requirements.txt
于 2012-08-29T19:06:35.860 に答える
31

virtualenv ディレクトリの場所を変更すると壊れます

これは、ディレクトリをリポジトリ ツリーの外、たとえば~/.virtualenvswithの下に置く利点の 1 つvirutalenvwrapperです。

それ以外の場合、プロジェクト ツリーに保持すると、プロジェクトの場所を移動すると virtualenv が破損します。

参照: virtualenv フォルダーを壊さずに名前を変更する

ありますが--relocatable、完全ではないことが知られています。

もう 1 つの小さな利点は、その必要がない.gitignoreことです。

プロジェクトツリー自体にgitignoredする利点は次のとおりです。

  • 関連するものを近くに保管します。
  • 特定の virtualenv をプロジェクト間で再利用することはおそらくないため、別の場所に配置してもあまり利点はありません

私の意見では、これは厄介な設計上の欠陥です。ツリー内に格納する方がシンプルで分離されているため、ディレクトリがどこにあるかに関係なく virutalenv を実装する必要があります。Node.js の NPM パッケージ マネージャーは問題なくそれを行います。そして、私たちがそれに取り組んでいる間: pip は、NPM と同じようにデフォルトでローカル ディレクトリを使用する必要があります。この個別の virtualenv レイヤーを持つことは不安定です。Node.js には、余分な入力なしですべてを実行する NPM があります。Python の投稿で JavaScript エコシステムを称賛しているとは信じられませんが、本当です。

于 2016-05-08T14:46:21.273 に答える
6

それらを配置する一般的に受け入れられている場所は、virtualenvwrapper のデフォルトのインストールが配置する場所と同じです。~/.virtualenvs

関連: virtualenvwrapper は、一般的な virtualenv コマンドの省略形を提供する優れたツールです。http://www.doughellmann.com/projects/virtualenvwrapper/

于 2012-08-29T19:06:42.367 に答える