【问题标题】:python error in opencv installationopencv安装中的python错误
【发布时间】:2013-03-28 02:48:09
【问题描述】:

我正在尝试在 Linux 中安装 opencv 库,但在 python 脚本生成的日志中出现以下错误:

Traceback (most recent call last):
  File "/tmcleod/opencv-2.4.4/modules/java/generator/gen_javadoc.py", line 257, in ?
    import hdr_parser
  File "/tmcleod/opencv-2.4.4/modules/java/generator/../../python/src2/hdr_parser.py", line 641
    decl[1] = ": " + ", ".join([b if "::" in b else self.get_dotted_name(b).replace(".","::") for b in bases])
                                   ^
SyntaxError: invalid syntax

这是导致错误的makefile中的命令:

cd /tmcleod/opencv-2.4.4/release/modules/java && /usr/bin/python2 /tmcleod/opencv-2.4.4/modules/java/generator/gen_javadoc.py --modules core,imgproc,objdetect,features2d,video,highgui,ml,calib3d,photo,contrib /tmcleod/opencv-2.4.4/modules/java/generator/src/java /tmcleod/opencv-2.4.4/release/modules/java 2>"/tmcleod/opencv-2.4.4/release/modules/java/get_javadoc_errors.log"

我不知道为什么我需要在安装 C++ 库时生成 java 文档,但问题是导致构建失败。任何帮助表示赞赏。

【问题讨论】:

  • 我遇到了同样的问题。我只需要 python 库,因此作为一种解决方法,我将编译后的共享对象文件 (cv2.so) 复制到我的工作目录中。
  • @Moshe,是不是python脚本出错了?
  • 可能,虽然该语法对于 Python 2.7 来说似乎是合法的,所以我不知道哪里出了问题(我使用了[b if b in 'abc' else 'X' for b in 'abcdefgh'] 作为一个小测试用例)。

标签: python opencv build cmake


【解决方案1】:

这里的问题是 cmake 找到了不理解这个结构的旧版本 (2.4) 的 python 可执行文件。解决方法是将 cmake 传递给 python 的路径。从 opencv 解压目录:

$ mkdir release
$ cd release
$ cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=./build -D PYTHON_EXECUTABLE=/tmcleod/Python-2.7.3/python ..
$ make
$ make install

【讨论】:

    猜你喜欢
    • 2016-10-13
    • 1970-01-01
    • 1970-01-01
    • 2016-11-24
    • 1970-01-01
    • 2015-05-11
    • 2016-12-26
    • 2012-05-26
    • 1970-01-01
    相关资源
    最近更新 更多