BETA

Poetryが作成した仮想環境をVSCodeに認識させる方法

投稿日:2020-01-26
最終更新:2020-01-27

前書き

Qrunchでのはじめての投稿になります。よろしくお願いいたします。

Poetryでは何らかのパッケージをインストールする前に仮想環境が自動的に作成されるが、VSCodeがその仮想環境を見つけてくれないので、手動で認識させてあげなければいけません。
毎回忘れてググッている気がするので、今回はその方法をメモとして残していきたいと思います。

どうやるか

Poetryで作成した仮想環境をVSCodeに認識させる方法は私の知る限りだと以下の3パターンがあります。

  • poetry shellで仮想環境に切り替えてからVSCodeを開く
  • .vscode/setting.jsonにpoetryによって自動生成された仮想環境のパスを入力する
  • プロジェクト直下で仮想環境を作成するようにPoetryの設定を変更する(個人的におすすめ)

以降で一つずつ具体的なやり方を記載していきます。

poetry shellで仮想環境に切り替えてからVSCodeを開く

細かい仕様はわかりませんが、VSCodeを開く前に利用しているpythonの環境を読み取るみたいなので、以下のようにしてPoetryで作成した仮想環境のシェルに切り替えてから、VSCodeを開くと仮想環境を認識してくれます。

poetry shell  
vscode .  

.vscode/setting.jsonにpoetryによって自動生成された仮想環境のパスを入力する

1つ目の「poetry shellで仮想環境に切り替えてからVSCodeを開く」方法だと、認識するまで時間がかかったり、反応がなかったりしたので、困ったときに.vscode/setting.jsonを直接書き換えたりしてみたらうまく行きました。
書き換え手順としては、まず以下のコマンドを実行して、仮想環境が保存されているディレクトリを表示します。

poetry config virtualenvs.path  

その仮想環境が保存されているディレクトリの中にプロジェクト名とランダムな文字列とpythonのバージョン情報が含まれているファイル(例: project-voct_rPc-py3.8の中のbin/pythonを指定すると良い)があるので、VSCodeで読み込ませたい仮想環境のディレクトリのパスを取得して、.vscode/setting.jsonに以下のように記載して保存すると読み込んでくれます。

{  
    "python.pythonPath": 取得したパス(例: "/home/username/.cache/pypoetry/virtualenvs/project-voct_rPc-py3.8/bin/python")  
}  

プロジェクト直下で仮想環境を作成するようにPoetryの設定を変更する

毎回プロジェクトを作るたびに上述の2つの方法で設定するのも面倒なので、私の場合はPoetryの設定でプロジェクト直下に仮想環境を作成するようにしています。具体的には以下のコマンドでできます。

poetry config virtualenvs.in-project true  

poetry config --listを実行すると以下のような結果が出力され、virtualenvs.in-project = trueとなっていれば設定完了です。

cache-dir = "/home/pesuchin/.cache/pypoetry"  
virtualenvs.create = true  
virtualenvs.in-project = true  
virtualenvs.path = "{cache-dir}/virtualenvs"  

この設定を完了してから仮想環境を作成すれば、VSCodeがPoetryの仮想環境を認識してくれるようになります。
この設定では、プロジェクト直下に.venvフォルダを作成してその下に仮想環境が作成されるので、Githubの標準の.gitignoreを使っていればcommitに含まれることはないですが、もし.gitignoreを配置していない場合はコミットに含めないように注意が必要です。

また、すでに仮想環境を作ってしまっているプロジェクトに関しては、設定変更しても仮想環境を作りなおしてくれることはないので、「poetry shellで仮想環境に切り替えてからVSCodeを開く」か「 .vscode/setting.jsonにpoetryによって自動生成された仮想環境のパスを入力する」で認識させるか一旦削除して作りなおすかする必要があります。

終わりに

Poetryは今のところ良いと思っているので、使ったことがなかった人もぜひ使ってみてください。
はてなブログは結構ガチで書いてしまっていて、趣向を変えづらいというのもあり、Qiitaはちょっと怖いイメージがあるので、Qrunchで自分用のメモのようなこういう記事を量産していこうかと思っています。

参考文献

転職黙示録(6) Poetryで作ったFastAPIアプリをVSCode Debuggerでデバッグする

Poetryの公式ドキュメントのConfigurationのページ

技術ブログをはじめよう Qrunch(クランチ)は、プログラマの技術アプトプットに特化したブログサービスです
駆け出しエンジニアからエキスパートまで全ての方々のアウトプットを歓迎しております!
or 外部アカウントで 登録 / ログイン する
クランチについてもっと詳しく

この記事が掲載されているブログ

ぺすちんの技術ブログ

よく一緒に読まれる記事

0件のコメント

ブログ開設 or ログイン してコメントを送ってみよう