Rainbow Engine

IT技術を分かりやすく簡潔にまとめることによる学習の効率化、また日常の気付きを記録に残すことを目指します。

Python

Pythonの「Import “requests” could not be resolved from source Pylance」エラーの原因と対処について

投稿日:2022年4月6日 更新日:

 

<目次>

(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」を作る事が推奨されています。
 

Adsense審査用広告コード


Adsense審査用広告コード


-Python

執筆者:


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

関連記事

オーバーフィッティングの対策(ドロップアウト)をご紹介(Kerasプログラムあり)

<目次> ■オーバーフィッティングの対策(ドロップアウト)をご紹介(Kerasプログラムあり)  ■オーバーフィッティング問題とは?  ■対策の概要  ■(1-1) ドロップアウトの数式  ■(1-2 …

「pyenv」の導入後も「System Python」が有効になってしまう事象の原因と対処について

  <目次> (1) 「pyenv」の導入後も「System Python」が有効になってしまう事象の原因と対処について  (1-1) 問題点の整理  (1-2) 原因&対策(1つ目)  ( …

Slackで自動返信の投稿をするボットをPythonで作る手順(ngrokでローカルPCをサーバーに見立てて)

  <目次> (1) Slackで自動返信の投稿をするボットをPythonで作る手順(ngrokでローカルPCをサーバーに見立てて)  (1-1) STEP1:Slackアプリの新規作成&権 …

Pythonで動的に変数を定義する方法

<目次> Pythonで動的に変数を定義する方法  想定利用シーン  (構文1)forループから  (構文2)ディクショナリー形式から  サンプルプログラム1  サンプルプログラム2 Pythonで動 …

PythonでAPIを呼び出すサンプルプログラムをご紹介

  <目次> (1) PythonでAPIを呼び出すサンプルプログラム  (1-1) 構文  (1-2) STEP1:事前準備  (1-3) STEP2:疎通①(最もシンプルなAPI呼び出し …

  • English (United States)
  • 日本語
Top