除了IDLE

我已经验证了我的Python和openCV库绝对可以正常工作。让我们说一个简单的cv2.imshow()与IDLE一起使用时可以正常工作。但是当我尝试使用同一代码使用其他IDE(例如Visual Studio和Pyscripter)时,IDE无法显示图像并出现错误。但是当我尝试打印(cv2。版本)时,它工作正常。这意味着我的IDE可以使用openCV库。我的pyscripter也提供了与VS相同的输出。我已经禁用了任何防病毒软件。为什么只有IDLE有效?

import cv2

print(cv2.__version__)

img = cv2.imread('cat.jpg')

cv2.imshow('img',img)`

IDLE vs VS running same code

python(64位):3.7.5 opencv(点):4.1.1 Visual Studio:2019年16.3.8

更新: 我发现此错误:

  

cv2。错误:OpenCV(4.1.1)C:\ projects \ opencv-python \ opencv \ modules \ highgui \ src \ window.cpp:352:错误:(-215:断言失败)size.width> 0 && size.height> 0在函数'cv :: imshow'

所以我在VS中添加了c ++模块,并将这一行添加到代码中:

cv2.waitKey(0)
cv2.destroyAllWindows()

它可以工作,但是与IDLE相比有点滞后,有人可以解释一下为什么吗?

deipfqu850726 回答:除了IDLE

您在其他IDE上遇到哪种错误?如果您执行print(img),会在其他IDE上获得None吗?

此外,如果您提供pip list,我可以查看是否可以使用您当前安装的软件包重现您的错误。

您是否尝试过将虚拟环境用于python(virtualenvAnacondaMiniconda)?这是使用不同版本的python和您的软件包而不与系统python冲突的好方法。

我在Anaconda conda create -n test python=3.7 opencv jupyter上使用软件包设置了一个新环境,并像您提到的那样在opencv中运行了命令。它在我安装的以下IDE中起作用:

  • Visual Studio 2019
  • Visual Studio代码
  • JetBrains PyCharm
  • GNU emacs
  • Jupyter笔记本(IPython)(实际上不是IDE)

对于每个IDE,您都必须将它们指向使用您的虚拟环境设置的python解释器(我可以提供更详细的说明)。我怀疑python的设置可能与您其他IDE的设置不同。 import sys; print(sys.path)可能会告诉您情况是否如此。也许后端是不同的-问题在于,变量太多,最好创建一个虚拟环境以查看是否遇到相同的错误。

编辑:我做了一个Jupyter Notebook,可以用来测试。如果您希望它运行,可以单击右上角(or start in Colab)的活页夹。重点是,如果您下载了此笔记本并在Python环境中运行它,则它应该可以工作(我在笔记本中包含了conda设置说明)。 NBViewerGitHub Repository

本文链接:https://www.f2er.com/3133562.html

大家都在问