我按照这个guide在Eclipse 2.7中使用Python设置了OpenCV 2.3.1。
我还将这些库复制到我的python文件夹中:
这是我的Hello World程序,它正确运行(创建一个命名窗口并显示图像),但Eclipse仍显示语法错误
每个错误都显示“导入时未定义的变量”
以下是此项目的python设置:
http://i.snag.gy/KBXiB.jpg http://i.snag.gy/KfTpF.jpg
我是否错误地设置了PythonPath?我怎样才能让Eclipse正常工作?
由于
答案 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 ...
处理问题,以便错误只出现一次。如果您愿意,可以编写一个包装器模块,该模块将变量显式地导入其本地名称空间,然后导入该模块。