Skip to content

環境管理🔗

Poetryはコア機能の1つとしてプロジェクト環境を隔離します。

これが意味するのは、グローバルにインストールされたPythonから常に隔離された状態で動作するということです。これを実現するために、まず最初に、今は仮想環境内から実行されているかどうかを確認します。もしそうであれば、新しい仮想環境は作らずに今あるものをそのまま使います。しかしそうでない場合は、既に作られていた仮想環境を使うか、それ用に新しい仮想環境を作成します。

デフォルトでは、Poetryは現時点で有効になっているバージョンのPythonを使って、プロジェクトの仮想環境を作成しようとします。

ただし様々な理由で、そのPythonバージョンがプロジェクトの python 要件と互換性が無いこともあります。そのような場合には、Poetryは互換性があるものを探して使おうとします。それでも見付からない場合には、プロンプトから明示的に作動させます。Switching environments を参照してください。

注意

簡単にPythonバージョンを切り換えるには、use pyenv もしくは同じようなツールを 使うことををお勧めします。

例えば、プロジェクトがPython2.7のみの場合、標準的なワークフローは 次のようになります:

pyenv install 2.7.15
pyenv local 2.7.15  # Activate Python 2.7 for the current project
poetry install

環境の切り替え🔗

これはシステムによっては上手く行かないこともあります。特に、Windowsが pyenv が使えなかったり、単に自分の環境の管理を明確にするのを好んだりします。この特有の目的には、env use コマンドが使って、今のプロジェクトでどのバージョンのPythonを使うかをPoetryに教えられます。

poetry env use /full/path/to/python

PATH 上にpythonの実行可能ファイルがある場合は、それを使えます:

poetry env use python3.7

この場合では、Pythonのマイナーバージョンも使えます:

poetry env use 3.7

もし明示的に仮想環境で動かさないようにしたい場合は、特殊なPythonのバージョン system を使ってデフォルトの挙動を取り戻せます:

poetry env use system

環境情報の表示🔗

現在作動している仮想環境の基本情報を知りたい場合は、env info コマンドが使えます:

poetry env info

このコマンドは次のような情報を出力します:

Virtual environment
Python:         3.7.1
Implementation: CPython
Path:           /path/to/poetry/cache/virtualenvs/test-O3eWbxRl-py3.7
Valid:          True

System
Platform: darwin
OS:       posix
Python:   /path/to/main/python

仮想環境のpathだけが欲しい場合は、--path オプションを env info に渡せます:

poetry env info --path

環境に関係するプロジェクトの一覧🔗

現在のプロジェクトに関係する全ての仮想環境の一覧を env list コマンドで出力することもできます:

poetry env list

このコマンドは次のような情報を出力します:

test-O3eWbxRl-py2.7
test-O3eWbxRl-py3.6
test-O3eWbxRl-py3.7 (Activated)

環境の削除🔗

最後に、存在する仮想環境を env remove コマンドを使い削除することもできます:

poetry env remove /full/path/to/python
poetry env remove python3.7
poetry env remove 3.7
poetry env remove test-O3eWbxRl-py3.7

現在作動している仮想環境を取り除く場合、仮想環境は自動的に停止されます。