Impossibile eseguire lo script Python Errore del programma: / usr / bin / python3 ^ M: interprete errato:
Quindi fondamentalmente sto cercando di eseguire un programma multiclipboard in Python su Ubuntu 20.04lts. Ho completato tutti i requisiti necessari come da istruzioni, ma sono rimasto bloccato.
#! /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()
Sono andato alla directory corretta ed ho eseguito questi comandi.
chmod +x mcb.py
e per eseguire il programma,
./mcb.py
Qui ho affrontato un errore come,
bash: ./mcb.py: /usr/bin/python3^M: bad interpreter: No such file or directory
Puoi aiutarmi per favore? Mi sto perdendo qualcosa o sbaglio da qualche parte?
Risposte
Hai un carattere di ritorno a capo errato alla fine della prima riga nel codice come indicato dal seguente messaggio di errore.
bash: ./mcb.py: /usr/bin/python3^M: bad interpreter: No such file or directory
La ^Mè un carattere di ritorno. Se vedi questo, probabilmente stai guardando un file che ha avuto origine nel mondo DOS / Windows, dove la fine della riga è contrassegnata da una coppia di ritorno a capo / nuova riga, mentre nel mondo Unix, la fine della riga è contrassegnato da una singola nuova riga. fonte
Per eliminare l'errore, crea un nuovo file mcb.py. Apri l'app Editor di testo predefinita, copia il codice dalla tua domanda e incollalo nell'editor di testo (gedit in Ubuntu 20.04), salva il codice come mcb.sh ed esegui di nuovo il codice con i seguenti comandi:
chmod +x mcb.sh
./mcb.sh