環境管理🔗
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
現在作動している仮想環境を取り除く場合、仮想環境は自動的に停止されます。