2012-08-29 10 views
54

私はvirtualenvsをどこに置くべきかについて混乱しています。virtualenvをどこに作成する必要がありますか?

私の最初のdjangoプロジェクトでは、 "django-admin.py startproject djangoproject"というコマンドでプロジェクトを作成しました。

次に、djangoprojectディレクトリにcdして、 "djangoproject"ディレクトリと同じレベルの仮想環境ディレクトリを作成した "virtualenv env"コマンドを実行しました。

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

私は、ほとんどの人がすべてのvirtualenvを全く別のディレクトリにまとめているという印象を受けています。 〜/ virtualenvsを実行し、virtualenvwrapperを使用してそれらの間で前後に切り替えることができます。

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

答えて

80

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

mkvirtualenv djangoproject 

と:あなたはそれを配布したくないので、

workon djangoproject 

それは(、プロジェクト自体にvirtualenvのディレクトリを維持するために、おそらく悪い考えですお使いのコンピュータやオペレーティングシステムに固有のものかもしれません)。代わりに、pip

pip freeze > requirements.txt 

を使用してrequirements.txtファイルを保存し、配布してください。 ~/.virtualenvs

pip install -r requirements.txt 
+0

いいえ私はピップのものを見たことがなかったが、私はいつかこれが便利になるでしょう –

+0

ピップは非常にDjangoコミュニティで非常に使いやすいです。 –

+0

Davidさん、ありがとうございました。私は要件のことを知っていて、それをやっています。私はちょうどvenvがどこに行かなければならないのか分からなかった。 OS特有のあなたのコメントは、あなたが提案したことをするための正当な理由です。 – William

4

それらを置くために、一般的に受け入れられた場所はvirtualenvwrapperのデフォルトのインストールはそれらを置くと同じ場所である:これは、プロジェクトを使用して他の人がして自分のvirtualenvのにすべて同じ要件を再インストールすることができます関連:virtualenvwrapperは、一般的なvirtualenvコマンドの短縮形を提供する優れたツールです。 virtualenvのディレクトリの場所を変更するhttp://www.doughellmann.com/projects/virtualenvwrapper/

10

はそれをこれは例えば、リポジトリツリーの外のディレクトリを置くことの主な利点である

を破ります~/.virtualenvsの下にvirutalenvwrapperである。

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

参照:Renaming a virtualenv folder without breaking it

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

別のマイナーな利点:あなたは.gitignoreである必要はありません。

もしそうでなければ、私はvirtualenvsをプロジェクトツリー自体に入れておくだけで、関連するものを密接に保つことができます。

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

0

pyenv install Pythonを使用する場合は、pyenv-virtualenvがベストプラクティスになります。 .python-versionファイルを設定した場合、作業フォルダを変更すると仮想envが自動的に有効化または無効化されます。 Pyenv-virtualenvまた、すべての仮想envを$HOME/.pyenv/versionsフォルダに入れます。