Exécution de scripts Python dans linux

J'essaie d'exécuter des scripts Python avec un shebang sur Ubuntu. Quand je crée un script python

#! /usr/bin/env python import sys 

… et l'exécuter, j'ai une erreur de shell:

  root@host:/home/user# ./test.py : No such file or directory 

Comment puis-je le faire fonctionner?

Solution : Supprimez '\ r's des terminaisons de ligne avec dos2unix.

Je suppose que le script est exécutable? Aussi, vérifiez les returns de voiture – peut-être que Windows a-t-elle ses petites mains sales? Vous pouvez vérifier ceci avec 'cat -vE test.py' et searchr '\ r'.

Vous avez probablement des fin de ligne Windows sur votre file. Essayez d'utiliser dos2unix dessus.

Essayez d'enlever l'espace entre #! et / usr / bin / env, même si je ne comprends pas pourquoi cela fonctionnerait quand ne pas importer des packages …

Êtes-vous sûr que l'erreur se produit pour la raison que vous pensez? Ou êtes-vous (plus tard dans le script) essayant d'ouvrir un file? Commencez avec le cas le plus simple pour que les choses fonctionnent …

hello.py:

 #!/usr/bin/env python print "Hello, world" 

puis…

 $ chmod +x hello.py $ ./hello.py Hello, world $ 

Utilisez les duplicates suivants pour supprimer les nouveaux caractères de ligne.

Perl -e 's / \ r // g' -w -p -i test.py

ou

sed -e "s / ^ M //" test.py> test_new.py