在用VSCode編輯Python源碼時,常會有from...import...此類用法,模塊都已正確安裝,還是會提示出錯
或是xxx has no xxx member出錯
但是能正常運行,記錄原因與解決方法。
一般VSCode使用pylint來檢查Python的語法錯誤,pylint語法規則校驗器對於python的import導入必須是相對於main函數的路徑
一些方法是禁用pylint的語法檢查或是屏蔽一些簡單錯誤
方法:在setting.json加入代碼(新版vscode已經不用json文件設置,直接改選項)
直接禁用
"python.linting.enabled": false
忽略指定錯誤
"python.linting.pylintArgs": [ "--disable=W,C,E" ], //忽略指定報錯 "python.linting.enabled": false //關閉pylint 報錯 (不包括語法錯誤)
雖然不顯示紅色波浪線了,擔心其他的錯誤也不顯示,不可取
方法:在項目主目錄下新建一個.pylintrc文件,然后在這個文件里添加一行
extension-pkg-whitelist=packagename
packagename就是模塊名,本例則是win32gui,相當於是加了一個白名單
但是實測只要存在.pylintrc這個文件,里面隨便寫點什么,就不會出紅色波浪線
方法:使用--generated-members
打開設置,搜索框輸入 python.linting.pylint 找到如下項目
點擊Add Item,框內輸入 --generated-members 注意第一個單詞后面有個d,好多文章里少了這個。。。
還有更詳細的設置,規定特定類
方法:修改設置里的提醒
以前版本是以json文件打開來設置的,現在新版本已經變成了選項
打開設置(Ctrl+,),輸入 python.linting.pylint 找到如下信息
Convention是 慣例(不重要,可關閉)
Error是 錯誤
Fatal是 致命錯誤
Refactor是 重構(這個貌似也不重要,可關閉)
Warning是 警告 (這個不關掉就煩了,必須關閉)
這四個選項,分別可以設置為:Hint(暗示),Error(錯誤),Information(信息),Warning(警告)
方法:打開設置(Ctrl+,)搜索內輸入 python.linting.pylintPath
將框內輸入為你的pylint安裝的路徑,路徑可以命令行里看
保存設置后問題消失
猜想是其他模塊保存的地方和pylint不一樣導致的,我的其他模塊放在了D:\Python\Python36\Scripts
之前有次是模塊安裝在用戶目錄,導致源碼里沒法用
參考:
https://blog.csdn.net/yinizhilianlove/article/details/105560705
https://blog.csdn.net/weixin_42657158/article/details/104072953