Impossible d'exécuter le script Python Erreur de programme: / usr / bin / python3 ^ M: interpréteur incorrect:

Sep 28 2020

Donc, fondamentalement, j'essaie d'exécuter un programme multiclipboard en python sur ubuntu 20.04lts. J'ai rempli toutes les exigences nécessaires selon les instructions mais je suis toujours resté bloqué.

#! /usr/bin/python3


import sys, pyperclip,shelve

mcbShelf=shelve.open('mcb')
if len(sys.argv)==3 and sys.argv[1].lower=='save':
    mcbShelf[sys.argv[2]]=pyperclip.paste()
elif len(sys.argv)==2:
    if sys.argv[1].lower()=='list':
        pyperclip.copy(str(list(mcbShelf.keys())))
    elif sys.argv[1] in mcbShelf:
        pyperclip.copy(str(mcbShelf[sys.argv[1]]))
mcbShelf.close()

Je suis allé dans le bon répertoire et ai exécuté ces commandes.

 chmod +x  mcb.py

et pour exécuter le programme,

./mcb.py

Ici, j'ai fait face à une erreur comme,

bash: ./mcb.py: /usr/bin/python3^M: bad interpreter: No such file or directory

Pouvez-vous m'aider s'il vous plaît? Est-ce que je rate quelque chose ou me trompe quelque part?

Réponses

1 karel Sep 28 2020 at 15:19

Vous avez un caractère de retour chariot incorrect à la fin de la première ligne de votre code comme indiqué par le message d'erreur suivant.

bash: ./mcb.py: /usr/bin/python3^M: bad interpreter: No such file or directory

Le ^Mest un caractère de retour chariot. Si vous voyez cela, vous regardez probablement un fichier qui provient du monde DOS / Windows, où une fin de ligne est marquée par une paire retour chariot / nouvelle ligne, alors que dans le monde Unix, fin de ligne est marqué par une seule nouvelle ligne. la source

Pour éliminer l'erreur, créez un nouveau fichier mcb.py. Ouvrez l'application Text Editor par défaut, copiez le code de votre question et collez-le dans Text Editor (gedit dans Ubuntu 20.04), enregistrez le code sous mcb.sh et exécutez à nouveau le code avec les commandes suivantes:

chmod +x  mcb.sh
./mcb.sh