OpenCV 2.3.1 Python with Eclipse显示语法错误但仍然运行

时间:2012-02-17 00:20:16

标签: python eclipse image image-processing opencv

我按照这个guide在Eclipse 2.7中使用Python设置了OpenCV 2.3.1。

我还将这些库复制到我的python文件夹中:

http://i.snag.gy/J9RrC.jpg

这是我的Hello World程序,它正确运行(创建一个命名窗口并显示图像),但Eclipse仍显示语法错误

Eclipse showing syntax errors

每个错误都显示“导入时未定义的变量”

以下是此项目的python设置:

http://i.snag.gy/KBXiB.jpg http://i.snag.gy/KfTpF.jpg

我是否错误地设置了PythonPath?我怎样才能让Eclipse正常工作?

由于

3 个答案:

答案 0 :(得分:5)

我遇到了同样的问题,即使整个地方都有未定义的导入错误,一切都正常运行。我最终通过将'cv'添加到Forced Builtins列表中来解决它:Window>偏好> Pydev>口译员 - Python> Forced Builtins>新。

这就是我遇到解决方案的方式:

How to use code completion into Eclipse with OpenCV

我希望这对你也有帮助。

答案 1 :(得分:2)

编辑:根据the top answer here,如果你刚刚开始(像我一样!),使用cv2接口而不是cv2.cv中提供的旧接口几乎肯定更好。这个答案的作者阿比德拉赫曼some tutorials看起来很不错。 (结束编辑)

我使用Debian的工具来安装python-opencv包。没有找到... / dist-packages / opencv目录,只包含cv.py文件:

from cv2.cv import *

我对Python相当缺乏经验,完全没有Python访问外部库,所以这看起来像是与此相关的某种解决方法。显然不是这样。我按照Casper上面的链接,找到了他使用的解决方案(对我有用),但是当我不完全确定后果时,我不喜欢使用“强制内置”。

然而,第二个评级较低的答案是我的首选解决方案。而不是

import cv

我正在使用

import cv2.cv as cv

据我所知,这只是从导入链中删除了cv.py中间人,如果这是有道理的。保存/关闭/重新加载我的脚本让Eclipse识别出定义的cv.LoadImageM,并从OpenCV自动完成其他任务。

我在这里复制了这个答案,因为它对我来说似乎更清洁,当我搜索同一问题的答案时,我首先发现了这个问题。

答案 2 :(得分:0)

显示您收到的错误和代码会很有帮助。但是,我怀疑问题是PyDev显示的语法错误是基于它自己的代码解析,这比实际的python解释器简单得多。如果您的代码运行,则必须定义明显未定义的变量,但PyDev解析器无法看到它们并将它们报告为“未定义”。

原因是OpenCV没有以PyDev可读取的方式显式定义其变量。不幸的是,我没有一个简单的解决方案。我通常使用from ... import ...处理问题,以便错误只出现一次。如果您愿意,可以编写一个包装器模块,该模块将变量显式地导入其本地名称空间,然后导入该模块。