解決vscode中使用pytorch時pylint報錯Module torch has no xxx member


項目場景

安裝好了pytorch,寫一個簡單的測試代碼,如下:

import torch
x = torch.rand(5, 3)
print(x)

問題描述

正常輸出:

tensor([[0.3506, 0.0131, 0.4908],
        [0.8524, 0.1879, 0.2194],
        [0.0101, 0.6458, 0.9603],
        [0.7522, 0.2765, 0.6378],
        [0.6041, 0.6980, 0.8985]])

但會報錯:

Module 'torch' has no 'rand' member

在這里插入圖片描述

原因分析

這個錯誤是pylint報的,所以肯定與它有關。具體可以看github上的第一條評論。

解決方案

方案一(推薦)

  1. Ctrl+Shift+P打開vscode的命令面板,輸入settings.json並打開第一項
    在這里插入圖片描述

  2. settings.json中插入以下代碼

"python.linting.pylintArgs": [
        "--errors-only",
        "--generated-members=numpy.*, torch.*, cv2.*, cv.*"
    ]
  1. 插入代碼之后記得保存一下
    在這里插入圖片描述

方案二

打開vscode,在settings中搜索python.linting.pylintPath,將原pylint替換為conda安裝路徑\pkgs\pylint文件夾\Scripts\pylint
在這里插入圖片描述
前提是你用conda安裝的pytorch,無論是Anaconda還是Miniconda都行。

溫馨提示

Pylint 是一個 Python 代碼分析工具,它分析 Python 代碼中的錯誤,查找不符合代碼風格標准和有潛在問題的代碼。

方案二之后pylint不知道為什么不會再進行任何提示了,相當於將pylint禁用了,顯然這不是我們想要的效果。

方案一不僅可以解決torch的報錯問題,pylint還能繼續發揮作用。以下圖為例,torch不再報錯,而其它錯誤比如使用了未定義的變量等,pylint還是會正常的提示。
在這里插入圖片描述

引用參考

https://pypi.org/project/pylint/
https://github.com/pytorch/pytorch/issues/701
https://stackoverflow.com/questions/50319943/pytorch-error-message-torch-has-no-member


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM