web-dev-qa-db-ja.com

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

私は自分のvirtualenvをどこに置くべきかについて混乱しています。

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

Django-admin.py startproject djangoproject

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

virtualenv env

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

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

ほとんどの人は、すべてのvirtualenvをまったく別のディレクトリにまとめているという印象を受けています。 ~/virtualenvsを選択し、virtualenvwrapperを使用してそれらを切り替えます。

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

92
Ray

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

mkvirtualenv djangoproject

そして後で:

workon djangoproject

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

pip freeze > requirements.txt

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

pip install -r requirements.txt
115
David Robinson

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

これは、リポジトリツリーの外にディレクトリを置くことの大きな利点です。 ~/.virtualenvsの下にvirutalenvwrapperを付けます。

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

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

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

もう1つの小さな利点:.gitignoreする必要はありません。

そうでない場合は、関連するものを近くに保つために、プロジェクトツリー自体でvirtualenvをgitignoredのままにしておきます。

プロジェクト間で特定のvirtualenvを再利用することはほとんどないため、これは問題ありません。

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

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

4
Emmett Butler

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

0
Aston