Czego używam w systemie Linux, aby uczynić program w języku Python wykonywalnym

89

Właśnie zainstalowałem system linux (Kubuntu) i zastanawiałem się, czy istnieje program, który sprawi, że programy w Pythonie będą wykonywalne dla systemu Linux.

rmtheis
źródło
Odpowiedziałem już tutaj http: //stackoverflow.com/questions/193077 / ...
Andrew Beyer
2
Nie, tam nie ma odpowiedzi. To pytanie dotyczy problemów z dystrybucją.
tzot
Nie, to nie jest oszustwo. To pytanie jest związane z dystrybucją oprogramowania w języku Python, aby uniknąć problemów z dostępnością bibliotek i zgodnością.
tzot

Odpowiedzi:

159

Po prostu umieść to w pierwszej linii skryptu:

#!/usr/bin/env python

Spraw, aby plik był wykonywalny za pomocą

chmod +x myfile.py

Wykonaj za pomocą

./myfile.py
Vincent Van Den Berghe
źródło
7
Jestem zmieszany. Jak działa "#! / Usr / bin / env python", gdy hash ma sprawić, że będzie to skomentowana linia? Próbowałem uruchomić skrypt bez linii skrótu, ale to nie zadziałało. Oczywiście linia jest wymagana, ale jak to działa, jeśli jest komentarzem?
Nawigacja
5
Jeśli wysyłasz skrypty do innego programisty, to jest w porządku. Nie jest to jednak odpowiedni sposób rozpowszechniania programów w języku Python wśród użytkowników końcowych. Co się stanie, jeśli użytkownik nie ma zainstalowanego Pythona? A jeśli tak, ale to inna wersja niż ta, w której napisałeś program? Ogólnie będzie to działać tylko dla niewielkiego odsetka użytkowników, szczególnie w systemie Windows.
Jonathan Hartley
5
@MathManiac Jeśli będziesz postępować zgodnie z sugestiami, około 15% użytkowników nie będzie w stanie uruchomić Twojej aplikacji. Będzie to paraliżujące obciążenie wsparcia, nie wspominając o fantastycznie wrogim doświadczeniu użytkownika, które będzie generować potok nienawistnych postów „aplikacja X jest do bani”. Potwierdzam, że nie jest to odpowiedni sposób rozpowszechniania aplikacji wśród użytkowników końcowych.
Jonathan Hartley
3
@PrahladYeri use # / usr / bin / env python3
kingledion
4
@Nav To się nazywa Shebang . Jest komentowany, ponieważ nie powinien być interpretowany przez Pythona. Dostarcza informacji do systemu operacyjnego. Dokładniej mówi, jakiego programu należy użyć do wykonania skryptu.
MannyC
16

Jeśli chcesz uzyskać samodzielną aplikację binarną w Pythonie, spróbuj użyć narzędzia takiego jak py2exe lub PyInstaller .

Mihai8
źródło
słowo kluczowe: samodzielne
D Adams
Czy mogę zdekompilować dane wyjściowe PyInstallera?
SuB
14

Możesz użyć PyInstaller. Generuje dystrybucję kompilacji, dzięki czemu można ją wykonać jako pojedynczy plik „binarny”.

http://pythonhosted.org/PyInstaller/#using-pyinstaller

Python 3 ma również natywną opcję tworzenia dystrybucji kompilacji:

https://docs.python.org/3/distutils/builtdist.html

Leo Pepe
źródło
pytanie nie dotyczy tworzenia skryptów Pythona plików exe / elf
warvariuc
8
Przepraszamy, ale wydaje się, że pytanie jest właśnie takie! „Zastanawiał się, czy istnieje program umożliwiający wykonywanie programów w języku Python w systemie Linux”.
Leo Pepe,
Wielkie dzięki, @LeoPepe, właśnie dokonałem rejestracji obecności na moich zajęciach, która pobiera dane wejściowe (nazwiska obecnych uczniów) z pliku i podaje obecność w pliku wyjściowym, po prostu klikając uruchamialny skrypt utworzony za pomocą pyinstaller.
Genius
4

Umieszczenie tych wierszy na początku kodu nakazuje systemom operacyjnym wyszukanie programu binarnego potrzebnego do wykonania skryptu w języku Python, tj. Jest to interpreter języka Python.

Więc to zależy od twojego systemu operacyjnego, w którym przechowuje interpreter Pythona. Ponieważ mam Ubuntu jako system operacyjny, utrzymuje on interpreter Pythona, /usr/bin/pythonwięc muszę napisać tę linię na początku mojego skryptu Pythona;

#!/usr/bin/python

Po uzupełnieniu i zapisaniu kodu

  1. Uruchom terminal poleceń

  2. Upewnij się, że skrypt znajduje się w Twoim obecnym katalogu roboczym

  3. Rodzaj chmod +x script_name.py

  4. Teraz możesz uruchomić skrypt, klikając skrypt. Pojawi się okno ostrzeżenia; naciśnij „Uruchom” lub „Uruchom w terminalu” w polu ostrzeżenia; lub w wierszu polecenia terminala wpisz./script_name.py

Mohit Dabas
źródło
4

Jeśli chcesz, aby plik wykonywalny hello.py

najpierw znajdź ścieżkę, w której znajduje się Python w twoim systemie operacyjnym: which python

zwykle znajduje się w folderze „/ usr / bin / python”.

w pierwszym wierszu hello.pynależy dodać:#!/usr/bin/python

następnie za pomocą polecenia linux chmod

należy po prostu uczynić go wykonywalnym, jak: chmod +x hello.py

i wykonaj za pomocą ./hello.py

Nilesh K.
źródło
1

Wykonuję następujące czynności:

  1. położyć #! / usr / bin / env python3 u góry skryptu
  2. chmod u + x plik.py
  3. Zmień .py na .command w nazwie pliku

To zasadniczo zmienia plik w plik wykonywalny bash. Po dwukrotnym kliknięciu powinien działać. Działa to w systemach opartych na Uniksie.

dan_the_ham-man
źródło
0

Innym sposobem na zrobienie tego może być utworzenie aliasu. Na przykład w terminalu napisz:

alias printhello='python /home/hello_world.py'

Pisanie printhellobędzie działać hello_world.py, ale jest to tylko tymczasowe. Aby aliasy stały się trwałe, musisz dodać je do bashrc, możesz je edytować, pisząc w terminalu:

gedit ~/.bashrc
Kokosowiec
źródło