从源代码构建的OpenCV:Pycharm不获取自动完成信息

2024-04-25 15:04:07 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试将OpenCV安装到我的python环境(Windows)中,我几乎已经完成了所有步骤,但是在导入库时,autocomplete和Pycharm本身仍然存在一些问题。我已经读过无数其他相关的文章,但似乎大多数都是过时的,对于预构建的版本,或者没有答案

我正在使用Anaconda,并且有几个环境,不幸的是,通过pip install opencv-contrib-python安装它并没有包括我需要的所有内容。所以,我从源代码构建了它,而库本身似乎运行良好。构建过程在./Anaconda3/envs/cv/Lib/site-packages/cv2/:__init__.py、一些配置py文件和.../cv2/python-3.8/cv2.cp38-win_amd64.pyd中安装了一些东西。我不确定它是否还有其他作用

但我现在的处境是:

  • 在一个单独的环境中,pip install opencv-contrib-python既运行又具有自动完成功能
  • 在这种环境中,OpenCV实际上运行得很好,但autocomplete不起作用,Pycharm抱怨一切,例如:Cannot find reference 'imread' in '__init__.py'
  • 无效缓存/重新启动没有帮助
  • 删除和重新添加环境没有帮助
  • 删除Pycharm的用户首选项文件夹没有帮助
  • 重建/安装OpenCV没有帮助
  • 文件->;设置->;项目->;项目解释器设置正确
  • 运行->;编辑配置->;Python解释器设置正确

所以我的问题是:Pycharm如何获取或生成自动完成信息?看起来pyd文件只是一个伪装的dll,通过查看其他环境的site packages/cv2文件夹,我没有看到任何有趣的内容。我已经读到{uu init{uuu.py与此有关,但pip版本同样不包含任何内容(除了有一个from .cv2 import *,但我不确定这是如何影响的)。您可以下载的.whl文件是一个zip文件,它只包含与“pip install”获得的内容相同的内容

自动完成信息存储在哪里?也许有办法把它从一个环境复制到另一个环境?这会让我几乎一路走到那里,我想在这一点上已经足够好了。也许我需要用我错过的另一面旗帜重建它


Tags: installpip文件pygt版本内容环境
2条回答

终于找到了!发布问题后会发生的数字

结果是需要将.../envs/cv/site-packages/cv2/python-3.8/cv2.cp38-win_amd64.pyd复制到.../envs/cv/DLLs/。然后PyCharm变魔术了,现在一切都好了

或者,将包含.pyd文件的目录添加到解释器路径

我的OpenCV 4.2.0就是这个问题,它是从源代码编译的,安装在我的Conda环境和PyCharm 2020.1中

我这样解决:

  1. 选择项目解释器
  2. 单击旁边的设置按钮,然后单击所选解释器的显示路径
  3. 添加包含cv2库的目录(在我的例子中是Conda Python库路径,例如miniconda3/lib/python3.7/site packages/cv2/Python-3.7)。一般情况下,请检查站点包/cv2/python-X.X目录)

相关问题 更多 >

    热门问题