PoetryをVSCode向けに設定する
VSCodeやPyCharmでパッケージがインポートされていないというようなエラーが出るときにはインタプリタがうまく設定できていない可能性があります.
デフォルト設定
Poetryの仮想環境はデフォルトの設定ではMacのキャッシュディレクトリに作成されます.
terminal
$ poetry config --list
cache-dir = "/Users/USERNAME/Library/Caches/pypoetry"
virtualenvs.path = "{cache-dir}/virtualenvs" # /Users/USERNAME/Library/Caches/pypoetry/virtualenvs
仮想環境の設定を変更
仮想環境をプロジェクトディレクトリ直下に作成するように設定を変更します.
terminal
$ poetry config virtualenvs.in-project true --local
VSCode が認識できるインタープリタは,ワークスペース或いはプロジェクトディレクトリ直下,python.venvPath
で指定されているディレクトリ下にある virtualenvs だそうなので,これで認識できるようになります.
--local
は TOML ファイルに virtualenvs.in-project = true
を記録します.virtualenvs.in-project
は true
のとき,プロジェクトディレクトリ直下の .venv を仮想環境と認識します.
参考:Configuration | Documentation | Poetry
設定を変更した後に環境を構築し直しておきます.現在のバージョン(弊環境では Python 3.9)を削除し,TOML ファイルに従ってインストールします.
terminal
$ poetry env remove 3.9
$ poetry install
Python のバージョンは pyenv で制御してください.ちなみに,今の環境は以下のように整えています.
VSCodeのインタプリタ変更
左下の Python バージョンが表示されている部分を押すと,VSCode で利用するインタプリタを変更できます.
上記の設定を行うと,./.venv/bin/python を選択することで仮想環境を利用できるようになっています.
Pythonパスを設定
(追記 2021.3.6)
上記だけでは一部のパッケージが unresolved だったので,Python のパスを環境変数で渡してあげる必要がありました.
プロジェクトディレクトリ直下に .env ファイルを作成します.
.env
PYTHONPATH=.venv