Nie można uruchomić skryptu Python Błąd programu: / usr / bin / python3 ^ M: zły interpreter:

Sep 28 2020

Więc zasadniczo próbuję uruchomić program multiclipboard w Pythonie na ubuntu 20.04lts. Wykonałem wszystkie niezbędne wymagania zgodnie z instrukcją, ale nadal utknąłem.

#! /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()

Poszedłem do właściwego katalogu i wykonałem te polecenia.

 chmod +x  mcb.py

i do uruchomienia programu,

./mcb.py

Tutaj napotkałem błąd, ponieważ

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

Czy możesz mi w tym pomóc? Czy coś mi brakuje lub gdzieś się mylę?

Odpowiedzi

1 karel Sep 28 2020 at 15:19

Masz zły znak powrotu karetki na końcu pierwszego wiersza w kodzie, zgodnie z następującym komunikatem o błędzie.

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

Znak ^Mjest znakiem powrotu karetki. Jeśli to widzisz, prawdopodobnie patrzysz na plik, który powstał w świecie DOS / Windows, gdzie koniec linii jest oznaczony parą powrót karetki / nowa linia, podczas gdy w świecie Unix, koniec linii jest oznaczony pojedynczym znakiem nowej linii. źródło

Aby pozbyć się błędu, utwórz nowy plik mcb.py. Otwórz domyślną aplikację Text Editor, skopiuj kod z pytania i wklej go do edytora tekstu (gedit w Ubuntu 20.04), zapisz kod jako mcb.sh i ponownie uruchom kod za pomocą następujących poleceń:

chmod +x  mcb.sh
./mcb.sh