私は自分のvirtualenvをどこに置くべきかについて混乱しています。
最初のDjangoプロジェクトで、私はコマンドでプロジェクトを作成しました
Django-admin.py startproject djangoproject
それからdjangoprojectディレクトリにcdし、コマンドを実行しました
virtualenv env
これにより、内部のdjangoproject
ディレクトリと同じレベルに仮想環境ディレクトリが作成されました。
これは、この特定のプロジェクトのvirtualenvを作成する間違った場所ですか?
ほとんどの人は、すべてのvirtualenvをまったく別のディレクトリにまとめているという印象を受けています。 ~/virtualenvs
を選択し、virtualenvwrapperを使用してそれらを切り替えます。
これを行う正しい方法はありますか?
多くの人が virtualenvwrapper ツールを使用します。このツールは、すべてのvirtualenvを同じ場所に保持します(~/.virtualenvs
ディレクトリ)を作成し、そこにショートカットを作成して保持することができます。たとえば、次のようにします。
mkvirtualenv djangoproject
そして後で:
workon djangoproject
配布したくないので、virtualenvディレクトリをプロジェクト自体に保存するのはおそらく悪い考えです(コンピューターまたはオペレーティングシステムに固有の場合があります)。代わりに、 pip を使用して、requirements.txtファイルを保持します。
pip freeze > requirements.txt
そしてそれを配布します。これにより、プロジェクトを使用している他のユーザーが、同じ要件をすべてvirtualenvに再インストールできます。
pip install -r requirements.txt
virtualenvディレクトリの場所を変更すると、破損します
これは、リポジトリツリーの外にディレクトリを置くことの大きな利点です。 ~/.virtualenvs
の下にvirutalenvwrapper
を付けます。
それ以外の場合、プロジェクトツリーに保持すると、プロジェクトの場所を移動するとvirtualenvが破損します。
参照: virtualenvフォルダーの名前を変更せずに変更する
--relocatable
がありますが、完全ではないことが知られています。
もう1つの小さな利点:.gitignore
する必要はありません。
そうでない場合は、関連するものを近くに保つために、プロジェクトツリー自体でvirtualenvをgitignoredのままにしておきます。
プロジェクト間で特定のvirtualenvを再利用することはほとんどないため、これは問題ありません。
一般的に受け入れられる場所は、virtualenvwrapperのデフォルトのインストールで配置される場所と同じです:~/.virtualenvs
関連:virtualenvwrapperは、一般的なvirtualenvコマンドの省略形を提供する優れたツールです。 http://www.doughellmann.com/projects/virtualenvwrapper/
pyenv install Python
を使用する場合、 pyenv-virtualenv がベストプラクティスです。 .python-version
ファイルを設定すると、作業フォルダーを変更したときに仮想環境を自動的にアクティブ化または非アクティブ化できます。 Pyenv-virtualenv
もすべての仮想環境を$HOME/.pyenv/versions
フォルダーに配置します。