python subprocess.call () "aucun fichier ou répertoire de ce type"
J'ai trouvé quelques questions sur le module, mais le problème le plus courant semble être l'argument de la liste de droite qui, je pense, j'ai réussi (enfin)
Je suis en train de lancer un programme qui attend une entrée comme ceci dans la ligne de commande,
fits2ndf in out
avec les "" être le chemin d'accès du fichier à convertir et 'out' être le chemin d'accès et nom de fichier pour enregistrer le résultat.
Donc à l'aide d'un processus secondaire,
subprocess.call(["fits2ndf","/media/tom_hdd/Transfer/reference.fits","/media/tom_hdd/Transfer/reference.sdf"])
cela soulève,
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
Réglage shell=TRUE
(je sais, c'est mal) donne le même résultat. Vous ne savez pas si c'est pertinent, mais je suis en utilisant tcsh. Des suggestions?
Modifier en réponse à des questions
Je n'ai pas, en permanence, définissez le CHEMIN d'accès cependant fits2ndf
fait partie d'un ensemble de programmes qui, je l'initialiser à l'aide de
% tcsh
% setenv STARLINK_DIR /home/tomq/star-kapuahi
% source $STARLINK_DIR/etc/login
% source $STARLINK_DIR/etc/cshrc
et fonctionne normalement à partir de l'intérieur de n'importe quel répertoire sans spécifier le chemin d'accès complet.
source d'informationauteur user1889259
Vous devez vous connecter pour publier un commentaire.
which fits2ndf
va vous montrer le chemin de la fits2ndf.Après cela, vous pouvez écrire donné le chemin d'accès complet à votre code, cela devrait fonctionner.
Ex:
Mon code python:
Vous pouvez supprimer l'espace dans
" /media/tom_hdd/Transfer/reference.sdf"
Aussi, essayez de tp de tout mettre dans une chaîne de caractères, comme
"fits2ndf /media/tom_hdd/Transfer/reference.fits /media/tom_hdd/Transfer/reference.sdf"
Assurez-vous de pointer à la direction exacte.