python - Pycharm 无法识别 cv2 但仍然可用
问题描述
我最近按照这个指令编译了OpenCV 4.4.0
withCUDA
和Python3
bindings 。我将它安装到 Anaconda 的 virtualenv 中,它可以在 Anaconda Prompt 中运行。但是因为我想在 中使用它,所以代码带有下划线的提示(只是下划线,尚未运行):Pycharm
import cv2
No module named cv2
即使我可以无误地导入并使用它。然后没有“提示信息”,因为我的光标在代码上,例如cv2.imread()
(通常会有关于输入名称和格式等的提示)。所以问题应该只是Pycharm无法识别它。
谁能启发我一点?谢谢!
解决方案
Emmm 我自己用一种愚蠢的方式解决了这个问题。
由于问题是我们只有.pyd
绑定文件,因此我们需要将其制作成一个包含参考文件的python 包,就像我们从. 所以我只是:pip install
- 创建一个新的虚拟环境
pip install opencv-python=4.4.0.42
(或您想要的其他版本)- 将文件以外的所有文件复制
.pyd
到目标虚拟环境。在我的情况下,它位于[PathToAnacondaEnvs]\MoVis_gpu\Lib\site-packages\cv2\
,因此这__init__.py
将使 cv2 成为合法的 python 包,其他文件将为它添加引用。
不优雅,但它有效:)
推荐阅读
- linux - Apache/Linux - 以 root 身份部署网站?
- visual-studio-code - VSCode 是否可以配置为添加自定义“|” 在 Rust 中使用闭包时(管道)匹配?
- scala - Seq[Any] 上的 scala 中的模式匹配
- oracle - 使用HiLo EF Core 5 设置值到前一个
- amcharts4 - 3d列amcharts如何在较大值前面制作较小的值
- aws-api-gateway - 通过其域名调用 API 网关
- html - Bootstrap 4 轮播 - d-md-flex align-items-md-center 刹车 col 宽度
- java - 如何在应用程序运行时检测 sqlite 文件替换?
- python - Pandas 在推断 dtypes 时改变值
- python - 前馈神经网络总是输出随机但相似的值