Jak bezpośrednio uruchomić program w języku Python?
Utworzyłem plik .py (powiedzmy mnik.py ) w gedit. Działa płynnie w terminalu.
Polecenie idzie
python3 mnik.py
Ale za każdym razem, gdy klikam plik, jest on otwierany za pomocą gedit. Nie mogę uruchomić go bezpośrednio, klikając.
Co robić?
python3
w wierszu polecenia za pomocą argumentu jest doskonałym sposobem na uruchamianie skryptów Pythona. Jest to w rzeczywistości najłatwiejszy sposób na uruchomienie programu, który wymaga terminala i argumentów (jak wiele moich własnych skryptów, ale także programów takich jakmercurial
,sphinx
). Chcesz wyjaśnić, dlaczego to, co robię od ponad 20 lat, nie jest właściwe?./scriptname
nie potwierdza twojego twierdzenia, że uruchamianie skryptu z wiersza poleceń za pomocąpython3
. Istnieją różne sposoby uruchamiania skryptów Pythona, a wykonywaniepython3 ./mnik.py
jest również właściwym sposobem działania, jest po prostu inne (a przynajmniej dostajesz w ten sposób python3, a nie python2, co jest bardziej prawdopodobne przy większości odpowiedzi do tej pory)Odpowiedzi:
Potrzebne są dwie rzeczy.
#!
wiersz informujący system operacyjny, którego interpretatora użyć. W twoim przypadku musi być twoja pierwsza linia w kodzie#!/usr/bin/env python3
Musisz otworzyć menedżera plików, przejść do Edycja -> Preferencje -> Zachowanie i wybrać, co zrobić z plikami wykonywalnymi
chmod +x /path/to/script.py
aw GUI kliknij plik prawym przyciskiem myszy i zmień jego Właściwości -> UprawnieniaPierwsza linia nazywa się linią shebang i musi zaczynać się od
#!
; cokolwiek będzie dalej, to nazwa tłumacza, który odczyta Twój kod. Jeśli używasz,python3
możesz użyć jednego z nich#!/usr/bin/python3
lub#!/usr/bin/env python3
do przenoszenia. Jeśli nie używasz kodu, który będzie specyficzny dla wersji Pythona - po prostu użyj#!/usr/bin/env python
Uwaga na temat wyniku skryptu:
Jeśli skrypt wypisuje dane wyjściowe na konsolę, musi mieć okno terminala lub alternatywnie użyć okien dialogowych GUI, takich jak
zenity
. Preferuj użycieRun in Terminal
opcji, jeśli chcesz zobaczyć kod. Jeśli chcesz, aby skrypt zrobił coś bez wyświetlania danych wyjściowych konsoli - użyjRun
opcji.Ponadto, jeśli masz parametry wiersza poleceń, takie jak
sys.argv[1]
w skrypcie, nie możesz ich ustawić, chyba że masz otwarte okno terminala.źródło
Files
program w programie uruchamiającym. W Windows-My Computer
nautilus
w terminalu#!
(shebang) w skryptach Pythona i jaką formę powinien on przyjąć?#!/usr/bin/env python
wywoła Python2 na większości systemów Ubuntu. Chociaż możesz zrobić skrypt napisany w języku Python dla Python3 zgodny z Python2, nie zakładam, że OP to zrobił.#!/usr/bin/env python3
wydaje się bardziej odpowiedni shebangMusisz umieścić lokalizację programu, aby wykonać swój kod w pierwszym wierszu, a następnie musisz ustawić skrypt, aby działał jako plik wykonywalny, zmieniając jego uprawnienia. Zakłada się, że uruchamiasz aplikacje z terminala lub innego skryptu.
Znajdź swoją instalację Python
Dodaj lokalizację programów do górnego wiersza programu z
#!
przoduUstaw skrypt języka Python, aby miał prawa wykonywania
Teraz możesz uruchomić skrypt bezpośrednio
Lista kodów dla test.py
źródło
Jeśli chcesz uruchomić ten program bez wpisywania
python3 mnik.py
, musisz uruchomić skrypt i upewnić się, żepython3
jest on używany do jego uruchomienia.Pierwsze, co możesz zrobić, uruchamiając
drugi możesz zrobić, dodając jako pierwszą linię skryptu linię shebang, która wywołuje python3 . We wszystkich systemach Ubuntu, z którymi współpracowałem, które były dostarczane z python3, możesz uzyskać python3, dodając tę linię u góry:
Po tych dwóch zmian można wpisać
/path/to/mnik.py
,./mnik.py
albo po prostumnik.py
(ten ostatni wymaga skryptu być w PATH).Jeśli się te zmiany można również rozważyć zmianę nazwy
mnik.py
namnik
, że powszechną praktyką jest z pakietów Pythona z poleceniami, które są publikowane na PyPI.źródło
/
Z przodu jest przynajmniej brak. Wyjaśnij, co zawiera „To” w Twoim komentarzu. Czy to powłoka bash? Czy to jest Windows Command.com? Z czego wywołujesz program iz jaką składnią wiersza poleceń?