始めに
少し前まではAnacondaで仮想環境を作ったり,Jupyter Notebookでコーディングしたりという感じだったのですが,その後,友人にVSCodeを勧められました.使い始めは一瞬だけ戸惑いましたが,すぐに慣れることができ,さらにとても便利で,すんなり乗り換えることができました(友人には感謝).
暫く使っていると,タイトルのような状況に出くわすことがあります.何度か調べたり読んだりして,仕組みと解決法はぼんやり理解したのですが,同じメッセージが出る度に調べるのも...と感じたので備忘録として残します.
以下は,こちらの記事を参考に,同記事に則した内容です.
状況は?
開発中,
import [library_name]
などとして,ライブラリやパッケージ,あるいはモジュールなどをimportしますよね.すると,[library_name]に黄色の波線が引かれます(下図,見にくいですがhello.pyが当該ファイルです).
何言うてんのかなーって感じでカーソルを合わせて見てみると,could not be resolvedとのこと(下図).
しかしながら,このコード自体はエラーなく実行できます.したがって,Pythonがflaskにアクセスするのは問題なくできているけど,VSCodeがflaskを見つけるのに失敗している状態です.VSCodeからflaskへのアクセスができれば(そのように設定を追加すれば),これは回避でき,AutoCompleteなどもシームレスに利用可能になります.
対処法は?
上記の通り,VSCodeの設定を少し書き換えてあげましょう.インストールしたflaskの場所を確認します(下図).

したがって,flaskは,
D:\DEGUCHI\00_src_python\99_notes\00_web\01_flask\.venv_flask\lib\site-packages\
の中にあるんですね.このパスを,VSCodeに追加します.設定からExtra Pathsを探し,Add Item欄に上記のディレクトリパスを追加しましょう(下図).

そして元のファイル(hello.py)に帰ってくると...!
波線もメッセージも消えていますね!flaskにカーソルを合わせてみるとmoduleであることを認識してくれています.
終わりに
要約すると,Pythonからは見つけているから実行してもエラーにはならないけど,VSCode側からは見つけきれていないよってことでした.
そのまま開発しても実行自体に問題は無いのですが,AutoComplete機能とかも使えないし,コード内にバグが発生したときに混乱の元になりそうですよね.何より僕は性格上とても気になりますので回避したいです.Anacondaを使っていた時には遭遇しなかったので,VSCodeで初めましてのメッセージでした.
参考文献
[1] 参考にさせていただいた記事