最近のエディタでやっぱり優秀なのは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-packages
C:\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"
],
...