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.




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

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 .


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


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


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


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.


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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.