• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Czy można zrobić plik wykonywalny na Linux?

0 głosów
9,650 wizyt
pytanie zadane 25 kwietnia 2018 w Python przez Storm Obywatel (1,570 p.)
Czy w Pythonie można zrobić plik wykonywalny czyli taki że po kliknięciu wywoła się program w terminale? Czy programy uruchamia się wpisując python program.py?

4 odpowiedzi

+2 głosów
odpowiedź 25 kwietnia 2018 przez adrian17 Mentor (355,180 p.)

Zakładam że pytasz o Linuxa, bo na Windowsie zazwyczaj kliknięcie pliku .py uruchamia program z terminalem (a jeśli to OSX, to aplikuje się tylko rada o shebangu i chmod)

Czy programy uruchamia się wpisując python program.py?

Można tak wywołać, ale można też sprawić, by były bezpośrednio wykonywalne: wystarczy dodać w pierwszej linii pliku tzw shebang mówiący, jakim programem interpretować plik:

#!/usr/bin/env python3

Oraz uczynić plik wykonywalnym:

$ chmod +x program.py

Wtedy można go uruchomić z linii poleceń bezpośrednio:

$ ./program.py

Jeśli chodzi o uruchomienie przez kliknięcie, to cecha przeglądarki plików. Np z Nautilusem (Ubuntu i inne) wystarczy przełączyć jedną opcję: https://askubuntu.com/a/293652

Ale to nie otworzy nowego terminala, tylko uruchomi program w tle. Jeśli chcesz zobaczyć nowy terminal, trzeba jeszcze więcej. Z głowy kojarzę jedną opcję: zdefiniowanie programu jako "program desktopowy" (nie wiem jak to nazwać) - wtedy można zadeklarować, by program otwierał sie z konsolą. Tu są przykłady: https://askubuntu.com/a/293660 , https://unix.stackexchange.com/a/363627/138664

Natomiast nie wiem, jak zrobić to ogólnie dla wszystkich skryptów. (skrypty konsolowe zazwyczaj jednak uruchamia się z poziomu konsoli...)

0 głosów
odpowiedź 25 kwietnia 2018 przez plucins Stary wyjadacz (11,130 p.)
Zawsze możesz utworzyć plik .sh który będzie odpalał program pythonowy.

https://www.pythoncentral.io/execute-python-script-file-shell/
0 głosów
odpowiedź 25 kwietnia 2018 przez RogerB Gaduła (3,370 p.)

Cześć.

Osobiście korzystam z cx freeze, działam na Windows jednak podobno jest multiplatformowy. LINK

Z tego co również kojarzę to PyInstaller także posiada posiada taką możliwość. LINK

0 głosów
odpowiedź 25 kwietnia 2018 przez mokrowski Mędrzec (158,960 p.)

Są 2 zagadnienia których nie warto mylić:

1. Uruchamianie skryptów jako takich

2. Dystrybucja oprogramowania.

Jeśli pytasz o to pierwsze, wystarczy nadać skryptowi atrybut wykonania, przestawić opcję w zarządcy plików (zapewne Nautilus) oraz ... kliknąć na skrypt.

Prosty testowy skrypt może wyglądać tak:

#!/usr/bin/env python3
from tkinter import Label

label = Label(None, text=u"Jestem działającym skryptem")
label.pack()
label.mainloop()

Jeśli chodzi o to drugie, to opcji jest wiele. Począwszy od modułu zipapp a zakończywszy na PyInstaller. Osobiście używam kombinacji zipapp z venv. Sprawdza się całkiem dobrze.

Podobne pytania

0 głosów
1 odpowiedź 2,059 wizyt
pytanie zadane 7 listopada 2020 w Offtop przez Paweł123 Nałogowiec (33,540 p.)
0 głosów
2 odpowiedzi 2,582 wizyt
0 głosów
1 odpowiedź 558 wizyt

93,742 zapytań

142,677 odpowiedzi

323,296 komentarzy

63,326 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...