Nie można uruchomić skryptu Python Błąd programu: / usr / bin / python3 ^ M: zły interpreter:
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
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