# 20240315110428 venv pyenv virtualenv などの関係 #python #venv #pyenv #virtualenv #poetry ## 雑な説明 - pyenv : pythonそのもののバージョンを複数切りかえたい時に使用するツール [[20240315154213 pyenv|pyenv]] - venv : pythonに標準で付属するvirtualenvの機能限定版 [[20240121125457 venv|venv]] - virtualenv : (自分のユースケースでは直接気にしなくていいかも)pipをプロジェクト専用にインストールする環境を構築してくれるツール。pythonのバージョン切りかえが可能、と解説してあるサイト等もあるが本当かな? ## poetryとの関係 - virtualenv: poetryで生成されるプロジェクト内(or cacheの) .venv はvirtualenv経由で作成されている。 cf. [Configuration | Documentation | Poetry - Python dependency management and packaging made easy](https://python-poetry.org/docs/configuration/) - pyenv: `poetry env use`コマンドを使うことで、実行環境を切りかえられる。 ただし、poetry initの時に実行されるのは、ディレクトリ内で `pyenv local` を指定したとしても、systemのバージョンになる。 `pyenv global`の内容も無視される。 - pyenv: システムのpythonのバージョンが古くてpoetryがインストールできない!みたいなことがある。そういう時はpyenvで新し目のpython環境を作って、その環境でpoetryを入れるなどする - pyenv: (将来的にはpyenvで実行環境を指定してからpoetryを実行することで、プロジェクトで使うpythonのバージョンを設定できる。 experimental扱い) ## Ref. - Poetry Configuration [Configuration | Documentation | Poetry - Python dependency management and packaging made easy](https://python-poetry.org/docs/configuration/) - Poetry Managing environments [Managing environments | Documentation | Poetry - Python dependency management and packaging made easy](https://python-poetry.org/docs/managing-environments/)