【bug】【Cannot find reference 'imread' in '__init__.py | __init__.py'】

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,問題解決了

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章