<目次>
(1) Pythonの「Import “requests” could not be resolved from source Pylance」エラーの原因と対処について
(1-1) エラーメッセージ・発生状況
(1-2) 原因
(1-3) 対策
(1) Pythonの「Import “requests” could not be resolved from source Pylance」エラーの原因と対処について
(1-1) エラーメッセージ・発生状況
pip(パッケージ管理ツール)で正常にライブラリをインストール出来たにも関わらず、それを実際に利用しようとした際に下記のエラーが出ました。
(エラーメッセージ)
Import "requests" could not be resolved from source Pylance
(図111①)requestsライブラリを正常にインストールされた
↓
(図111②)実際にプログラムで使用しようとすると、波線でエラーが出た
(1-2) 原因
現時点で、正確な原因は特定できておりません(分かる方居たら教えてください)
推定の域を出ませんが、Visual Studio Codeにおいては複数のインタープリター(Pythonプログラムを解釈して実行するプログラム)を選択する事ができます。例えば、下図の例ですと3.10.X、3.8.X、3.7.Xの3つのバージョンが選択できます。
(図112)
今回の例で言うと、pip install requestsのインストールはPythonの3.10に対して実行されており、3.10のインタープリターを使うと、処理自体は問題なく実行できている状況でした。
しかし、それでもパッケージに波線のエラーが出ている事から、ひょっとするとPythonの構文チェックは、ランタイム(処理実行時)とは異なるインタープリターで実行されていたのでは?とふと思ったりもしました。
(1-3) 対策
後述の対策は、あまり根拠や再現性のない対策で恐縮ですが、一旦は私の環境では「この方法で解消した」という事で、ワークアラウンド程度に捉えて頂けたらと思います。
(対策手順)
・①VS Code画面の左下でインタープリターのバージョンをクリック
→中央上部にインタープリターの選択肢(※1)が表示されます。
↓
・②異なるインタープリターを選択した後に、VS Codeを再起動
→波線のエラーが解消した
(図113)
(※1)「インタープリターを選択」について
余談ですが、Pythonでは同一マシン内で複数の環境を持つことができます。これらは、Pythonのバージョンや用途に応じて内容が異なる環境にする事ができます。
またPython3では「venv」という機能があり、プロジェクト毎に異なるパッケージインストールを管理する事ができます(≒それぞれ独立した仮想環境)。このメリットとして、お互いに独立した環境のため、パッケージをインストールする際に、相互への影響(環境を壊してしまったり)の心配なく出来る点が挙げられます。
基本的にPythonの開発を進める際は、用途やプロジェクト単位で、この「venv」を作る事が推奨されています。