最近のエディタでやっぱり優秀なのはIntelliSens(Autocomplete)だと思う。入力の手間が省けるだけじゃなくて、引数の形とかも出してくれるし、ちょっとしたドキュメントもついてるからめっちゃ有能。
でも、VSCodeを使ってPythonの開発をしていて、opencv-python, numpy, scipy, pandas などの巨大なライブラリではIntelliSenseが出てこなかったので、色々調べて直した方法をメモ。ただ、あんまり情報がなかったので、これで全員が解決するかはわからない()
環境
- OS : Windows 10 Home
- VSCode : 1.45.1
- Python : 3.8.3
Anaconda経由ではなく、Pythonを直接インストールしています。
settings.json
pip install [パッケージ名]
としてパッケージがインストールされるフォルダを、VSCodeのsettings.jsonの"python.autoComplete.extraPaths"に書き足せばよい。
例えばPython3.8系のものを、インストーラーのデフォルトの設定でインストールした場合は、以下のフォルダに入ります(多分)。Pythonのバージョンが3.7系ならPython38をPython37に読み替えればいいだけです。
C:\Users\<ユーザー名>\AppData\Roaming\Python\Python38\site-packagesC:\Users\<ユーザー名>\AppData\Local\Programs\Python\Python38\Lib\site-packages
これを書き足せばいいです。
ただ、1つの環境のみで開発していて、settings.jsonをその環境以外とは共有していないのであればこのまま書けば良いですが、例えばSettings Syncなどを使って共有している場合は<ユーザー名>が同じとは限らないので環境依存しない書き方をします。
settings.jsonでは環境変数的なのが使えないので、settings.json (以下の場所にあります)からの相対パスで上記のディレクトリを指定しました。
C:\Users\<ユーザー名>\AppData\Roaming\Code\User\settings.json
以下のようになります。回りくどいので他にいい方法あれば教えてください。
...
"python.autoComplete.extraPaths":[
"../../Python/Python38/site-packages",
"../../../Local/Programs/Python/Python38/Lib/site-packages"
],
...
後はVSCodeを再起動すれば、IntelliSenseが使えると思います。ついでに、importのところのunresolved import '~~~' Python(unresolved-import)も出なくなっていると思います。
備考
"python.jediEnabled"をfalseにする
人によるかもしれないのですが、settings.json の"python.jediEnabled"がTrueだと思うので、これをFalseにしないとだめかもしれません。
...
"python.jediEnabled": false,
...
絶対パスでもいける?
PythonをC:\Pythonとかユーザー名に依存しない場所に、どの環境でもインストールしておけば相対パスで書かなくてもいけそうです。
C:\Pythonにインストールした私の環境であれば、以下の形の記述でいけました。
...
"python.autoComplete.extraPaths":[
"C:\\Python\\Python38\\Lib\\site-packages"
],
...

