当 OpenCV 在 venv python 3.10 中时,Pycharm“找不到参考”

Posted

技术标签:

【中文标题】当 OpenCV 在 venv python 3.10 中时,Pycharm“找不到参考”【英文标题】:Pycharm "Cannot find reference" when OpenCV is in a venv python 3.10 【发布时间】:2021-11-29 01:26:35 【问题描述】:

编辑-我尝试过的事情

*This 问题是一样的,但是那里的解决方案并没有解决我的问题。我没有 DLLs 文件夹,所以我做了一个,尝试了删除和不删除 site-packages/cv2/ 中的文件

*我检查了this 和this,但无法正常工作。

*我也尝试从我的基本解释器中删除opencv-python,只在venv上下载它,但仍然没有用。

*我也多次尝试使缓存无效/重启。

*我也尝试过彻底删除python和pycharm。当我升级到 3.10 时,我什至无法安装 opencv。当我再次尝试 3.8 时,同样的问题发生了。


我想将 ML 库下载到 Pycharm (python 3.8)。最初我只是在 python 解释器本身(设置>项目> Python解释器)中添加它们(例如opencv-python),它工作正常(所以现在我的常规解释器上有一堆库)。

然后我读到制作一个新的 venv 并在那里下载库是更好的做法。我新建了一个环境:

然后我进入新的解释器并添加opencv-python(加号>搜索此>安装包):

之后我制作了一个需要cv2 的简短脚本。 Pycharm 无法导入 cv2,但按下“运行”时脚本运行正常(显示图像)。

如果我将解释器切换到常规解释器,它会识别 cv2 方法并自动完成我。

【问题讨论】:

能否添加PyCharm的终端截图? @Sabil 我可以,但它不会打印错误消息。运行后终端为空,按下按钮后它存在,代码为0。 这些有帮助吗? ***.com/… 要识别库的唯一要求是在设置中正确设置项目的默认解释器。您只是已经这样做了,所以它应该可以工作。由于代码在运行时工作,显然是索引 venv 的 IDE 文件需要刷新 - 尝试清除缓存!如果您在终端中运行它,请记住需要激活 venv,如果您使用的是运行配置,您还必须选择正确的 venv。但是编辑器窗口中的警告只连接到设置中选择的解释器。 @bad_coder 我使缓存无效并多次重新启动。我通过右上角的运行按钮运行,在运行配置中我选择了正确的 venv。 【参考方案1】:

我使用anaconda解决了它。

我第一次尝试它不起作用,所以可能是使用非 ascii 用户名(again)的问题。我在包含非 ascii 的路径中有 .conda 文件夹,以及安装在不同位置的 anaconda3 本身

正确安装:

    同时卸载 anaconda、pycharm(如果有其他 python,请卸载它们)。

2。仅使用 ascii 创建一个新用户(例如 Ben)。 在此用户中:

    安装 anaconda(我猜 miniconda 也可以) 创建一个 venv(我使用了 this 和 this 教程) 使用conda-forge 安装您的软件包,就像教程中一样

【讨论】:

以上是关于当 OpenCV 在 venv python 3.10 中时,Pycharm“找不到参考”的主要内容,如果未能解决你的问题,请参考以下文章

为 Windows 激活 venv (Python 3.7.2) [重复]

Python 3 使用venv创建虚拟环境

在 linux mint 上安装 python3-venv 模块

Python3 venv 创建虚拟环境

无法将 Python 3 (3.5) 带入 venv [重复]

python包管理——python venv和pycharm