Blogical

AWS/Salesforceを中心に様々な情報を配信していきます(/・ω・)/

VS Code で Python の仮想環境を扱う

こんにちは、ロジカル・アーツの笹原です。

最後に(そして最初に)記事を投稿してから既に一年以上が経過してしまいました。。生存報告も兼ねて、今回は VS Code の開発環境の設定についてお伝えしたいと思います。

はじめに

これまでは割と力づくで強く意識することなく開発を行ってきましたが、最近ようやく、開発環境を整えて効率を上げることに関心が向き始めました。その第一弾として、表題の通りですが、Python の仮想環境を VS Code で扱う手順を紹介したいと思います。

以下の手順で扱う環境は次の通りです:

なお、第一弾とは書きましたが、第二弾以降の記事が書かれるかは今のところ不明です。

準備

下記の前提のもとで、設定作業を行っていきたいと思います。

項目 内容
作業ディレクト python-venv
仮想環境名 .venv
インストールパッケージ* Flask
検証用ファイル名 test.py

* インストールするパッケージは何でもよいのですが、後の確認のため、グローバルにインストールされていないものを選択しています。私の環境では Flask がこれに該当します。

以下に簡易な手順と、参考画像を載せておきます。

仮想環境の作成

作業ディレクトpython-venv を用意し、仮想環境 .venv を作成します。作成方法は例えば、コマンドプロンプトを開き、カレントディレクトリが python-venv の状態で、python -m venv .venv を実行します。以下の画像では、VS Code のターミナルで実行しています。

f:id:logicalarts:20210413141908p:plain

仮想環境への切り替え

コマンドプロンプトで行う場合は、仮想環境下にある Scripts\activate.bat を実行します。Powershell の場合は Scripts\Activate.ps1 を実行すればよいのですが、別途設定作業が必要な可能性があります。詳細は以下の記事を参照してください。

zenn.dev

f:id:logicalarts:20210413141625p:plain

Flask のインストール

仮想環境に切り替わったら、pip install FlaskFlask をインストールします。

f:id:logicalarts:20210413141619p:plain

検証用ファイルの作成

作業ディレクトリ(python-venv)直下に test.py を作成し、from flask import Flask を追記します。このとき、以下のようなエラーが表示されると思います。

f:id:logicalarts:20210413144706p:plain

現時点では、Pythonインタプリタは仮想環境のものに設定されていません。これからその設定手順を見ていきたいと思います。

設定方法

VS Code を起動した状態で、Ctrl + Shift + P を押し、コマンドパレットを開きます。python: select と入力し、Python: Select Interpreter をクリックします。

f:id:logicalarts:20210413115822p:plain

Enter interpreter path... をクリックし、続いて Find... をクリックします。

f:id:logicalarts:20210413114936p:plain

f:id:logicalarts:20210413114940p:plain

エクスプローラーが起動するので、仮想環境にある python.exe を選択し、「インタープリターを選択」をクリックします。

f:id:logicalarts:20210413114922p:plain

一度 VS Code を閉じ、再度開きます。すると、先程までのエラーが消え、flask にカーソルを当てるとクイックインフォが表示されるようになりました!

f:id:logicalarts:20210413115817p:plain

上の画像だと見辛いですが、VS Code のウィンドウの左下を見ると、仮想環境に切り替わっていることが確認できます。

f:id:logicalarts:20210413145913p:plain

Appendix: pythonPath を使用した設定方法

実は手順を調べていた時は、主にこの pythonPath を使用した方法が見つかったのですが、自分の環境で試そうとしたところ、以下の画像のメッセージが出てきて設定出来ませんでした。

f:id:logicalarts:20210413154426p:plain

そこからいろいろ試して上で紹介した方法に辿り着いたわけですが、 pythonPath を使用しても設定できる方法が分かった*1ので、ついでに紹介したいと思います。

A/B テストをオプトアウトする

VS Code を起動した状態で、Ctrl + , を押し、設定画面を開きます。入力欄に python.experiments と入力し、Python › Experiments: Enabled の下のチェックを外します。

f:id:logicalarts:20210413161951p:plain

pythonPath の設定

今度は Ctrl + Shift + P を押し、コマンドパレットを開きます。settings と入力し、Preferences: Open Workspace Settings (JSON) をクリックします。

f:id:logicalarts:20210413161939p:plain

表示された settings.json に以下の情報を追記します:

"python.pythonPath": "{仮想環境のインタプリタのパス}"

パスは、ワークスペース(作業ディレクトリ)からの相対バスでいいようです。本記事の状況だと .venv/Scripts/python.exe となります。

f:id:logicalarts:20210413161946p:plain

インタプリタの切り替え

VS Code を一度閉じ、再度開きます。Ctrl + Shift + P を押してコマンドパレットを開き、Python: Select Interpreter をクリックします。すると、以下の画像のように pythonPath で指定したインタプリタが候補として表示されます。 これをクリックすることで、先程と同じように仮想環境に切り替わります。

f:id:logicalarts:20210413161934p:plain

おわりに

このような開発環境の準備は、今まさに取り組んでいる最中ですが、きちんと用意することで後続の開発がぐっと楽になるのではないかと思います。(そしてそうなることを期待しています。)ゆくゆくは様々な方法を紹介していきたのですが、これも*2いつになることやら。。

参考リンク

*1:苦労した雰囲気を醸し出してますが、実際のところはメッセージにある Learn more のリンク先をよく読めばほとんど書いてあります。。

*2:冒頭に挙げた最後(最初)に投稿した記事にも、似たようなあとがきがありました(笑)