モジュールに関するいくつかの質問を見つけましたが、より一般的な問題は、私が管理したと思われる引数リストを正しく取得しているようです (最終的に)
コマンドラインでこのような入力を期待するプログラムを実行しようとしていますが、
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
通常、フルパスを指定せずに任意のディレクトリ内から機能します。