Was verwende ich unter Linux, um ein Python-Programm ausführbar zu machen?

87

Ich habe gerade ein Linux-System (Kubuntu) installiert und mich gefragt, ob es ein Programm gibt, mit dem Python-Programme für Linux ausführbar gemacht werden können.

rmtheis
quelle
Bereits hier beantwortet http: //stackoverflow.com/questions/193077 / ...
Andrew Beyer
2
Nein, es wird dort nicht beantwortet. Diese Frage fragt nach Verteilungsproblemen.
Zot
Nein, es ist kein Betrug. Diese Frage bezieht sich auf die Verteilung von Python-Software, wobei Probleme mit der Verfügbarkeit und Kompatibilität der Bibliothek vermieden werden.
20.

Antworten:

154

Fügen Sie dies einfach in die erste Zeile Ihres Skripts ein:

#!/usr/bin/env python

Machen Sie die Datei ausführbar mit

chmod +x myfile.py

Ausführen mit

./myfile.py
Vincent Van Den Berghe
quelle
6
Ich bin verwirrt. Wie funktioniert das Python "#! / Usr / bin / env", wenn der Hash es zu einer kommentierten Zeile machen soll? Ich habe versucht, das Skript ohne die Hash-Zeile auszuführen, aber es hat nicht funktioniert. Natürlich ist die Zeile erforderlich, aber wie funktioniert es, wenn es sich um einen Kommentar handelt?
Nav
5
Wenn Sie Skripte an einen anderen Programmierer senden, ist dies in Ordnung. Dies ist jedoch keine geeignete Methode, um Python-Programme an Endbenutzer zu verteilen. Was ist, wenn der Benutzer Python nicht installiert hat? Was ist, wenn sie es tun, aber es ist eine andere Version als Sie das Programm geschrieben haben? Insgesamt funktioniert dies nur für einen winzigen Prozentsatz der Benutzer, insbesondere unter Windows.
Jonathan Hartley
4
@MathManiac Wenn Sie so vorgehen, wie Sie es implizieren, können etwa 15% der Benutzer Ihre Anwendung nicht ausführen. Dies wird eine lähmende Supportlast sein, ganz zu schweigen von einer fantastisch feindlichen Benutzererfahrung, die einen Strom hasserfüllter "Application X Sucks" -Postings erzeugen wird. Ich stehe zu meiner Behauptung, dass dies kein geeigneter Weg ist, um Anwendungen an Endbenutzer zu verteilen.
Jonathan Hartley
2
@ PrahladYeri verwenden # / usr / bin / env python3
kingledion
3
@Nav Das heißt Shebang . Es ist auskommentiert, weil es nicht von Python interpretiert werden sollte. Es gibt Informationen zum Betriebssystem. Insbesondere heißt es, mit welchem ​​Programm das Skript ausgeführt werden soll.
MannyC
16

Wenn Sie eine eigenständige Binäranwendung in Python erhalten möchten, verwenden Sie ein Tool wie py2exe oder PyInstaller .

Mihai8
quelle
Schlüsselwort: Standalone
D Adams
Kann ich die Ausgabe von PyInstaller dekompilieren?
SuB
13

Sie können PyInstaller verwenden. Es wird ein Build-Dist generiert, sodass Sie es als einzelne "binäre" Datei ausführen können.

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

Python 3 bietet die native Option, ein Build-Dist zu erstellen:

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

Leo Pepe
quelle
Die Frage ist nicht, wie man Python-Skripte zu Exe / Elf-Dateien macht
warvariuc
8
Entschuldigung, aber es scheint, dass die Frage genau das ist! "Ich habe mich gefragt, ob es ein Programm gibt, mit dem Python-Programme für Linux ausführbar gemacht werden können."
Leo Pepe
4

Wenn Sie diese Zeilen am Anfang des Codes einfügen, werden Ihre Betriebssysteme angewiesen, das für die Ausführung des Python-Skripts erforderliche Binärprogramm nachzuschlagen, dh es ist der Python-Interpreter.

Es hängt also von Ihrem Betriebssystem ab, auf dem der Python-Interpreter gespeichert ist. Da ich Ubuntu als Betriebssystem habe, bleibt der Python-Interpreter erhalten, /usr/bin/pythonsodass ich diese Zeile am Anfang meines Python-Skripts schreiben muss.

#!/usr/bin/python

Nach dem Ausfüllen und Speichern Ihres Codes

  1. Starten Sie Ihr Befehlsterminal

  2. Stellen Sie sicher, dass sich das Skript in Ihrem aktuellen Arbeitsverzeichnis befindet

  3. Art chmod +x script_name.py

  4. Jetzt können Sie das Skript starten, indem Sie auf das Skript klicken. Ein Warnfeld wird angezeigt. Drücken Sie im Warnfeld auf "Ausführen" oder "Im Terminal ausführen". oder geben Sie an der Terminal-Eingabeaufforderung ein./script_name.py

Mohit Dabas
quelle
4

Wenn man ausführbar machen will hello.py

Finden Sie zuerst den Pfad, in dem sich Python in Ihrem Betriebssystem befindet, mit: which python

Es befindet sich normalerweise im Ordner "/ usr / bin / python".

in der allerersten Zeile hello.pysollte man hinzufügen:#!/usr/bin/python

dann durch Linux-Befehl chmod

man sollte es einfach ausführbar machen wie: chmod +x hello.py

und ausführen mit ./hello.py

Nilesh K.
quelle
1

Ich mache folgendes:

  1. stellen #! / usr / bin / env python3 oben im Skript
  2. chmod u + x file.py.
  3. Ändern Sie .py im Dateinamen in .command

Dies macht die Datei im Wesentlichen zu einer ausführbaren Bash-Datei. Wenn Sie darauf doppelklicken, sollte es ausgeführt werden. Dies funktioniert in Unix-basierten Systemen.

dan_the_ham-man
quelle
0

Eine andere Möglichkeit besteht darin, einen Alias ​​zu erstellen. Zum Beispiel im Terminal schreiben:

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

Beim Schreiben printhellowird hello_world.py ausgeführt, dies ist jedoch nur vorübergehend. Um Aliase dauerhaft zu machen, müssen Sie sie zu bashrc hinzufügen. Sie können sie bearbeiten, indem Sie dies in das Terminal schreiben:

gedit ~/.bashrc
Coco
quelle