【问题标题】: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
【问题描述】:

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

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

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

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

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

这是我为这个项目设置的 python 设置:

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

我的 PythonPath 设置是否不正确?如何让 Eclipse 正常工作?

谢谢

【问题讨论】:

    标签: python eclipse image image-processing opencv


    【解决方案1】:

    我遇到了同样的问题,尽管到处都存在未定义的导入错误,但一切运行正常。我最终通过在 Forced Builtins 列表中添加“cv”来解决它:Window > Preferences > Pydev > Interpreter - Python > Forced Builtins > New。

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

    How to use code completion into Eclipse with OpenCV

    希望对你也有帮助。

    【讨论】:

    • 对于 cv2 用户,将 'cv2' 添加到列表中
    【解决方案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 ... 来处理这个问题,这样错误只会出现一次。如果您愿意,您可以编写一个包装模块,将变量显式导入其本地命名空间,然后导入该模块。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-03-04
        • 1970-01-01
        • 2021-12-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-06-15
        相关资源
        最近更新 更多