我正在尝试将OpenCV安装到我的python环境(Windows)中,并且几乎已经完成了所有工作,但是在自动完成和Pycharm本身导入库方面仍然存在一些问题。我经历了无数其他相关主题,但似乎其中大多数主题要么已过时,针对预建版本,要么未得到答复。
我正在使用Anaconda,并且具有多个环境,但是不幸的是,通过pip install opencv-contrib-python
安装它并没有包含我需要的一切。因此,我是从源代码构建的,并且库本身似乎运行良好。构建过程将一些东西安装到./Anaconda3/envs/cv/Lib/site-packages/cv2/
中:__init__.py
,一些config py文件和.../cv2/python-3.8/cv2.cp38-win_amd64.pyd
。我不确定是否还有其他用途。
但是我在这里:
pip install opencv-contrib-python
既运行又可以自动完成工作Cannot find reference 'imread' in '__init__.py'
所以我的问题是:Pycharm如何获取或生成该自动完成信息?看起来pyd文件只是一个变相的dll,并且在其他环境的site-packages / cv2文件夹中浏览时,我看不到任何有趣的东西。我已经读到__init__.py与它有关,但是pip版本不包含任何内容(除了from .cv2 import *
,但我不确定这是怎么造成的)。您可以下载的.whl文件是一个zip文件,仅包含与“ pip install”得到的文件相同的文件。
自动完成信息存储在哪里?也许有某种方法可以将其从一个环境复制到另一个环境?这几乎将我带到了那里,这点我认为就足够了。也许我需要用我错过的另一个标志重建它?
终于明白了!发布问题后将要发生的数字...
结果需要将.../envs/cv/site-packages/cv2/python-3.8/cv2.cp38-win_amd64.pyd
复制到.../envs/cv/DLLs/
。然后PyCharm做到了魔术,现在一切都很好。
或者将包含.pyd文件的目录添加到解释器路径。
我在从Conda环境和PyCharm 2020.1安装的源代码编译的OpenCV 4.2.0中确实遇到了这个问题。
我这样解决: