【bug】【Cannot find reference 'imread' in '__init__.py | __init__.py'】
阿新 • • 發佈:2021-11-03
pycharm
開啟了程式碼智慧提示,opencv
模組正確匯入了,程式碼可以正常執行,但是,會有
Cannot find reference 'imread' in '__init__.py | __init__.py'
的warning,而且沒有程式碼提示,不能獲取documentation,也不能檢視原始碼,不能提示形參列表,排查了很久,不知道為何。
找到一個相關的問題:
python - Cannot find reference 'xxx' in init.py - Stack Overflow
不是很理解
PyCharm looks at the
__init__.py
file to traceback to the module where a function/variable resides. So without__all__
having the modules names, it can't traceback to the source.
我的推測也是pycharm這樣做並不是bug,而是根據__init__.py
檔案中的__all__
全域性變數來進行索引。
關閉這個warning是簡單的,但沒有必要,而且即使關閉warning,程式碼提示功能依舊不起作用。
後面我通過修改opencv
的版本,完美的解決了這個問題,沒有warning,並且程式碼提示功能也正常了。
有問題的版本是
可以看到其__init__.py
檔案中的__all__
變數宣告
居然是空的,不清楚到底原因是不是因為這個__all__
之後我修改了opencv
4.5.3.56
,問題解決了