virtualenvはどこに作成する必要がありますか?


106

virtualenvをどこに配置すればよいか混乱しています。

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

django-admin.py startproject djangoproject

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

virtualenv env

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

これは、この特定のプロジェクトのvirtualenvを作成するための間違った場所ですか?

ほとんどの人がすべてのvirtualenvを完全に異なるディレクトリ(例:)に保持し、virtualenvwrapperを~/virtualenvs使用してそれらの間を切り替えているという印象を受けています。

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

回答:


128

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

mkvirtualenv djangoproject

そして後で:

workon djangoproject

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

pip freeze > requirements.txt

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

pip install -r requirements.txt

素敵なIのhadnt今までピップのものに見えたが、私はいくつかの日に必要とする場合、これは便利になるだろう
Joranビーズリー

pipはDjangoコミュニティで非常に人気があり、非常に使いやすいです。
David Robinson

デービッドに感謝します。私は要件について知っていて、それをやっています。私はvenvがどこに行くべきかわからなかっただけです。OS固有であることについてのあなたのコメントは、あなたが提案することを行うための良い正当化です。
レイ

作成後に仮想環境を移動することはできますか?私は無意識のうちにプロジェクトディレクトリ内に置きました
James Wierzba

6
正当な理由ではないIMO。これは.gitignoreの目的ではありませんか?
Josh Noe

24

virtualenvディレクトリの場所を変更すると破損する

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

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

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

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

別の小さな利点:あなたはそれにする必要はありません.gitignore

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

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

3
これは、プロジェクトツリーの外にvirtualenvフォルダーを作成するために私が見た唯一の合理的な議論です!他のガイダンスは、virtualenvが根本的に壊れているために残念ながら妥協するのではなく、本質的にはベストプラクティスであるかのように、「集中化」の教義を繰り返すようです(かなり便利ですが)。
rob3c

申し訳ありませんが何かが明確ではありません。プロジェクトツリーで作成してから「gitignoring」するか、〜/ .virtualenvsで作成することをお勧めしますか?「そうでなければ」とはどういう意味ですか?
aderchox

1
@aderchoxにはトレードオフがあります。プロジェクトツリーに入れて、ツリーを移動すると、再インストールする必要があります。
Ciro Santilli郝海东冠状病六四事件法轮功


0

を使用するpyenv install Python場合、pyenv-virtualenvがベストプラクティスになります。.python-versionファイルを設定すると、作業フォルダを変更したときに仮想環境を自動的にアクティブ化または非アクティブ化できます。Pyenv-virtualenvまた、すべての仮想環境を$HOME/.pyenv/versionsフォルダーに配置します。


0

私の個人的な経験から、すべての仮想環境を1つのディレクトリに整理することをお勧めします。誰かが非常に鋭いメモリを持っていて、ファイルシステム全体に散らばっているファイル/フォルダを思い出すことができない限り。仮想環境を管理するためだけに他のツールを使用することはあまり好きではありません。VSCode python.venvPathでは、すべての仮想環境を含むconfigure()ディレクトリを構成すると、それらすべてが自動的に認識されます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.