1

我正在尝试使用一个名为“bundler_sfm”的软件,它是使用 python 脚本执行的。

我正在尝试使用的软件在这里可用,如果您想看一下,脚本在 utils 目录中。

尝试运行它时,出现以下 python 错误:

File "/usr/lib/python2.7/subprocess.py", line 493, in call
return Popen(*popenargs, **kwargs).wait()
File "/usr/lib/python2.7/subprocess.py", line 679, in __init__
errread, errwrite)
File "/usr/lib/python2.7/subprocess.py", line 1249, in _execute_child
raise child_exception
OSError: [Errno 2] No such file or directory

导致此错误的代码如下:

# Extract SIFT data
if verbose:
    with open(pgm_filename, 'rb') as fp_in:
        with open(key_filename, 'wb') as fp_out:
            subprocess.call(BIN_SIFT, stdin=fp_in, stdout=fp_out)

我已经查看了具有类似错误的其他各种答案,但仍然不知道如何解决这个问题。

我正在尝试在基本操作系统的终端中运行它。

任何帮助将不胜感激。

4

1 回答 1

0

已经在评论中解决了,但只是为了回答:

通过在调用 subprocess.call() 方法之前打印出 BIN_SIFT 来计算实用程序认为 sift 二进制文件所在的位置。

意识到这条路径不正确

作为一种变通的解决方法,将 bundler.py 第 55 行的正确路径硬编码为列表中的字符串:

BIN_SIFT = ["/real/path/to/sift"]
于 2015-03-04T16:39:10.763 回答