Python のバージョンを管理するために pyenv を使い始めたばかりで、virtualenv を管理するために pyenv virtualenv プラグインを使い始めました。しかし、私が見逃していることの 1 つは、virtualenv を使用すると、仮想環境を実際にリポジトリ ディレクトリに配置して、リポジトリを完全に再現可能な環境にすることができるということです。pyenv で virtualenv のディレクトリを選択する方法を知っている人はいますか?
4 に答える
簡単な答え: 私の知る限り、できません。
それも本当にうまくいきませんよね?virtualenv をレポジトリにインストールするために使用pyenv virtualenv
し、そのレポを別のマシンに複製するとpyenv
、新しいマシンでレポジトリ内の virtualenv をどのように制御できるのでしょうか?
また、「あなたはおそらくそれをすべきではありません」。Virtualenv は、基礎となる Python インストールから 100% 分離されているわけではなく、実際にはそれほど移植性がありません。そして、簡単にレプリケートできるジャンクをリポジトリに散らかしたいですか? 物事を進めるための「正しい」方法は、おそらくrequirements.txt
for pip を維持することです。そうすれば、リポジトリをどこにクローンしても、開発環境を簡単に再現できます。
そうは言っても、制御下でPythonインタープリターにインストールしたとしても、プレーンオールドvirtualenv
を使用して好きな場所にvirtualenvを作成することを妨げるものは何もありません. もちろん、その virtualenv 自体はによって管理されませんが、これまでと同じように使用できます…</p>
virtualenv
pyenv
pyenv
これについて尋ねるプロジェクト トラッカーの GitHub の問題は次のとおりです: https://github.com/pyenv/pyenv/issues/802
プロジェクト協力者からの返信は次のとおりです。
virtualenv は任意の場所に作成できます。pyenv から使用するには、環境へのシンボリック リンクを ~/.pyenv/versions に作成します。
ただし、このソリューションにはあまり満足していないと言わざるを得ません。
回避策があります
プロジェクト ディレクトリに.python-version
ファイルを作成します。を使用して仮想環境を既にインストールしていると仮定してpyenv-virtualenv
、次の行をそれに追加します (バージョン番号を変更することをお勧めします)。
3.7.1/envs/your-project-name@3.7.1
ディレクトリに入るたびに、正しい python バージョンが使用され、非常にうまく機能します。
どうですか:
pyenv install -s 3.8.3 # install preferred version if needed
PYENV_VERSION=3.8.3 python -m venv /tmp/your/prefered/dir ; source /tmp/your/prefered/dir/activate
この方法では、virtualenv ではなく venv を使用することに注意してください。これはわずかに異なりますが、標準ライブラリの一部です。