我在模块上发现了一些问题,但更常见的问题似乎是让我认为我已经管理的参数列表正确(最终)
我正在尝试运行一个程序,该程序需要在命令行中输入这样的输入,
fits2ndf in out
'in' 是要转换的文件的文件路径,'out' 是保存结果的路径和文件名。
所以使用子进程,
subprocess.call(["fits2ndf","/media/tom_hdd/Transfer/reference.fits","/media/tom_hdd/Transfer/reference.sdf"])
这引发了,
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
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
设置shell=TRUE
(我知道这是不好的)产生相同的结果。不确定它是否相关,但我正在使用 tcsh。有什么建议么?
编辑以回答问题
我没有永久设置 PATH 但fits2ndf
它是我使用初始化的程序包的一部分
% tcsh
% setenv STARLINK_DIR /home/tomq/star-kapuahi
% source $STARLINK_DIR/etc/login
% source $STARLINK_DIR/etc/cshrc
并且通常在任何目录中工作而无需指定完整路径。