【问题标题】:OpenCV 2.3.1 Python with Eclipse shows synatx errors but still runs带有 Eclipse 的 OpenCV 2.3.1 Python 显示 synatx 错误但仍然运行
【发布时间】:2012-03-08 10:27:21
【问题描述】:
【问题讨论】:
标签:
python
eclipse
image
image-processing
opencv
【解决方案2】:
编辑:仅供参考,根据the top answer here,如果您刚刚开始(像我一样!)使用 cv2 接口而不是 cv2.cv 中提供的旧接口几乎肯定会更好。该答案的作者 Abid Rahman 的 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 的其他内容。
我在这里复制这个答案,因为它对我来说似乎更干净,当我搜索同一问题的答案时,我首先发现了这个问题。
【解决方案3】:
显示您遇到的错误和您的代码会很有帮助。但是,我怀疑问题在于 PyDev 显示的语法错误是基于它自己对代码的解析,这比实际的 python 解释器要简单得多。如果您的代码运行,则必须定义明显未定义的变量,但 PyDev 解析器无法看到它们并将它们报告为“未定义”。
造成这种情况的原因是 OpenCV 没有以 PyDev 可以读取的方式显式定义其变量。不幸的是,我没有一个简单的解决方案。我通常使用from ... import ... 来处理这个问题,这样错误只会出现一次。如果您愿意,您可以编写一个包装模块,将变量显式导入其本地命名空间,然后导入该模块。