Znalazłem kilka pytań na temat modułu, ale bardziej powszechnym problemem wydaje się być uzyskanie właściwej listy argumentów, którą moim zdaniem udało się (ostatecznie)python subprocess.call() "brak takiego pliku lub katalogu"
próbuję uruchomić program, który oczekuje wejście jak to w wierszu poleceń,
fits2ndf in out
z „w” bycia filepath pliku do konwersji i „out” jest ścieżka i nazwa pliku do zapisz wynik do.
Więc za pomocą podproces,
subprocess.call(["fits2ndf","/media/tom_hdd/Transfer/reference.fits","/media/tom_hdd/Transfer/reference.sdf"])
ten podnosi,
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
Ustawianie shell=TRUE
(co wiem, to źle) daje ten sam wynik. Nie wiem, czy jest to istotne, ale używam tcsh. Jakieś sugestie?
Edycja w odpowiedzi na pytania
nie mam na stałe ustawić ścieżkę jednak fits2ndf
jest częścią pakietu programów, które zainicjować za pomocą
% tcsh
% setenv STARLINK_DIR /home/tomq/star-kapuahi
% source $STARLINK_DIR/etc/login
% source $STARLINK_DIR/etc/cshrc
i normalnie działa od wewnątrz dowolny katalog bez podania pełnej ścieżki.
jest 'fits2ndf' na swojej drodze? –
Niestety nie bardzo rozumiem twoje pytanie, fits2ndf jest zawarty w innym katalogu, ale działa dobrze w innym miejscu bez pełnej ścieżki, ale nie powinien być częścią ścieżki do pliku .fits. – user1889259
@Karthik odwoływał się do zmiennej środowiskowej PATH. Czy katalog zawierający 'fits2ndf' w $ PATH jest wyeksportowany? – cdarke