python subprocess.call () “no existe tal archivo o directorio”

He encontrado algunas preguntas en el módulo pero el problema más común parece ser el de la lista de argumentos que creo que he logrado (eventualmente)

Estoy tratando de ejecutar un progtwig que espera una entrada como esta en la línea de comandos,

fits2ndf in out 

siendo ‘in’ la ruta de archivo del archivo que se va a convertir y ‘out’ es la ruta y el nombre de archivo para guardar el resultado.

Entonces usando Subproceso,

 subprocess.call(["fits2ndf","/media/tom_hdd/Transfer/reference.fits","/media/tom_hdd/Transfer/reference.sdf"]) 

esto plantea,

     Traceback (most recent call last): File "", line 1, in  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 

    Establecer shell=TRUE (que sé que es malo) produce el mismo resultado. No estoy seguro si es relevante pero estoy usando tcsh. ¿Alguna sugerencia?


    Editar en respuesta a las preguntas.

    No he establecido permanentemente el PATH, sin embargo, fits2ndf es parte de un paquete de progtwigs que inicializo usando

     % tcsh % setenv STARLINK_DIR /home/tomq/star-kapuahi % source $STARLINK_DIR/etc/login % source $STARLINK_DIR/etc/cshrc 

    y normalmente funciona desde cualquier directorio sin especificar la ruta completa.

    which fits2ndf le mostrará el camino de fits2ndf.

    Después de eso, puede escribir la ruta completa dada a su código y debería funcionar.

    Ex:

     ~$ which mv /bin/mv 

    Mi código python:

     import subprocess subprocess.call(["/bin/mv","/tmp/a","/tmp/b"]) 

    Es posible que desee eliminar el espacio en " /media/tom_hdd/Transfer/reference.sdf"

    También, intente tp poner todo en una cadena, como "fits2ndf /media/tom_hdd/Transfer/reference.fits /media/tom_hdd/Transfer/reference.sdf"

    Asegúrese de que apunta a la dirección exacta.