Import "requests" could not be resolved from sourcePylancereportMissingModuleSource で困った件の解決法
■発生した問題
import requests
と書くと、pylanceのエラーで
Import "requests" could not be resolved from sourcePylancereportMissingModuleSource
となり、実際requests関連のコードを書いても、requestsモジュールがインポートされていないと注意される。
■問題の解決
1. 何がどこでどうなっているか、確認
まずはバージョン
python --version # command not foundになったら↓ python3 --version # Python 3.9.6 とか出てくる
次に、インストールされている場所
which python3 # /usr/bin/python3
ここまでの状態がmacにデフォルトでインストールされているpythonらしい。
この状態だと
pip3 install requests
を実行しても「すでにインストールしてます」みたいなメッセージしか出てこない。
2. Visual studio code の内部の問題を疑った
VSコードのSettingに
「pythonpath」
と検索
pythonをpython3に変更する
でも問題は解決されず。(結局最後は「python」に戻した)
さらに、Visual studio code のエクスプローラーが表示されない問題が...
結局Visual studio code は再インストールした。
rm -rf /Applications/Visual\ Studio\ Code.app/ rm -rf ~/Library/Application\ Support/Code rm -rf ~/.vscode/
3. macでのPythonのデフォルトをHomebrewに切り替える
デフォルトのpythonでは、同じことの繰り返しになったので、HomebrewのPythonを使うことにする。
brew install python@3.11 # 「brew search python」 でインストールできるpythonのバージョンを確認できる。その中で新しいのを選んだ。
環境変数を通さなきゃならないらしい。.zshrcに環境変数を追加してみる。
cd ~/.zshrc # .zshrcの最終行に追記 export PATH="/usr/local/opt/python@3.11/libexec/bin:$PATH"
でも
which python3 # /usr/bin/python3
が変わらない....。
できれば
which python3 # /usr/homebrew/bin/python3 # とか # /usr/local/bin/python3 # となってほしい
環境変数をいじる類は全部ダメで、最後に以下のコマンドがうまくいった!
brew link --overwrite python3
ここまでの状態をセットすると、pythonの呼び出しは
pthhon3 ❌ でなく python ⭕️
になっていた。これで改めて
python --version # Python 3.11.3 which python # /usr/local/opt/python@3.11/libexec/bin/python
となったことが確認できた!
4. Pythonのデフォルト場所が変わって、初めてpipコマンドでライブラリが有効になった!
最後に、必要なライブラリをpipコマンドでインストール。
これも、pip3ではなくpipである必要があった。
# まずはあるかどうか念のため確認。一番最初のmacの環境では「ある」と表示された pip show requests →WARNING: Package(s) not found: requests # 無事に無いことが確認できたので、インストール pip install requests
■参考URL