我正在尝试使用一个名为"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)
我看过其他各种有类似错误的答案,但仍然不知道如何解决这个问题。
我正在尝试在elementary操作系统的终端中运行这个。
如有任何协助,我们将不胜感激。
已经在评论中解决了,但只是为了得到一个答案:
通过在调用subprocess.call()方法之前打印出BIN_sift,计算出实用程序认为sift二进制文件所在的位置。
意识到此路径是不正确的
作为一种破解方法,将bundler.py第55行的正确路径硬编码为列表中的字符串:
BIN_SIFT = ["/real/path/to/sift"]