Je ne suis pas capable d'exécuter ce fichier Python à partir d'un terminal.
J'ai ajouté le shebang:
#!/usr/bin/env python
au début du fichier.
Est-ce que je fais quelque chose de mal? Comment puis-je exécuter ce fichier depuis un terminal?
EDIT: https://imgur.com/YYBpILr Je suppose que cela pourrait être utile.
command-line
python
Pomme de terre
la source
la source
/usr/bin/python
, et non/usr/bin/env python
?python aaa.py
ou déjà simplementpython
?python aaa.py
?^M
après la lignepython
dans le shebang. C’est probablement le fait d’avoir édité le fichier sur un ordinateur non-Unix (généralement Windows). Supprimez ce personnage et cela fonctionnera --- si vous aviez coupé et collé cette erreur dans la question, sans capture d'écran, vous avez eu la réponse instantanément ...Réponses:
La capture d'écran ci-dessous montre le problème: vous avez un caractère invisible
^M
après le python dans la ligne shebang. C’est probablement le fait d’avoir édité le fichier sur un ordinateur non-Unix (généralement Windows); donc l'interprète recherché estpython^M
ce qui n'est pas trouvé.Si vous n'avez pas modifié ce fichier sur un système d'exploitation extraterrestre, le problème de fin de ligne dans votre éditeur est peut-être un problème. Quoi qu'il en soit, réécrire la ligne shebang dans un éditeur sain d'esprit devrait corriger le problème.
la source
^M
était visible uniquement dans les éditeurs de terminaux tels quenano
et non dans les éditeurs graphiques tels que gedit ou sublime text. Il a fallu éditer le fichier en nano pour supprimer tous les^M
caractères du fichier. Cela a bien fonctionné par la suite."show_line_endings": true
préférences.false
par défaut. Mais bon à savoir si je le reverrai à l'avenir :)Votre fichier a des fins de ligne Windows , ce que les shells unix n'aiment pas .
Convertissez-les simplement en fins de fichier Unix en utilisant
dos2unix aaa.py
(vous aurez peut-être besoin d'installerdos2unix
, qui est un logiciel très léger [200 Ko] mais utile) et tout devrait bien se passer.Les différentes représentations des fins de ligne sont une source commune de problèmes "étranges". Vous pouvez vérifier les fins de ligne avec
file <yourfile>
si elle indique quelque chose comme:<yourfile>: ASCII text,
with CRLF line terminators
Cela signifie qu'il a des fins de ligne Windows et que vous devriez les convertir en unix à l' aide de
dos2unix
la commande vim:set ff=unix
ou de votre éditeur de texte préféré, le cas échéant.la source
: no such file or directory
maintenant.usr/bin/python: bad interpreter: No such file or directory
Avez-vous changé le shebang entre temps, peut-être de#!/usr/bin/env python
à#!usr/bin/python
? Si vous l'avez fait, c'est maintenant le problème. Retournez à l'original.usr/bin/python
(nienv
) dans le répertoire actuel. La tralala correcte est:#!/usr/bin/env python
.