2013-03-28 303 views
0

我尝试安装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文档,但问题是导致生成失败。任何帮助赞赏。

+0

我有同样的确切问题。我只需要python库,所以作为解决方案,我将编译后的共享对象文件(cv2.so)复制到我的工作目录中。 – Moshe 2013-03-28 02:54:29

+0

@Moshe,这是在Python脚本中的错误? – ThomasMcLeod 2013-03-28 03:00:37

+0

虽然该语法似乎对Python 2.7来说是合法的,但我不知道什么是错误的(我使用了'[b如果b在'abc'else'X'中为'abcdefgh']'作为一个小测试用例)。 – Moshe 2013-03-28 03:59:58

回答

3

这里的问题是,cmake发现一个不懂这个构造的python可执行文件的旧版本(2.4)。解决方法是将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