Wie erstelle ich eine ausführbare .py-Datei (für Nicht-Programmierer)?

Ich verwende Ubuntu 16.04 und habe ein Python-Skript für meinen Kollegen erstellt - er hat MacOS . Gehen Sie davon aus, dass er nichts über Bash oder Python weiß.

Ich möchte ihn also nicht dazu bringen, dieses Skript von bash aus auszuführen . Ich möchte, dass er einfach auf die Datei doppelklickt, um das Skript auszuführen.

Wie würdest du das machen?

Hinzufügen:

#!/usr/bin/env python

neben

chmod +x filename 

Funktioniert nicht auf meinem Ubuntu, also nehme ich an, dass es auf MacOS nicht funktioniert

Dies ist ein Anfang des Skripts:

#!/usr/bin/env python
# coding=utf-8
import os
try:
    import jinja2
except ImportError:
    import pip
    pip.main(['install','jinja2'])

BEARBEITEN: Ich kann nicht auf seinen Mac zugreifen, also muss ich ihm entweder klare Anweisungen geben oder eine ausführbare Datei erstellen.

Sieht für mich vernünftig aus, warum funktioniert es nicht unter Ubuntu? Es sollte unter macOS funktionieren, vorausgesetzt, die ausführbare Python-Datei in PATH hat die erforderliche Version und alle Bibliotheken sind entweder installiert oder installierbar.
Ich bin mir nicht sicher. Aber selbst wenn ich diese Schritte mache, wenn ich auf file.py klicke, wird es in gedit (Texteditor) geöffnet.
Das ist dann ein Linux-Problem. Solange Ihr Freund seinen Mac nicht so konfiguriert hat, dass er .pyDateien in einem Editor öffnet, sollte alles in Ordnung sein.

Antworten (2)

Sie können die Datei einfach umbenennen und ihr stattdessen die Dateierweiterung „command“ geben. Außerdem müssen Sie es ausführbar machen (wie zuvor mit chmod +x). Benennen Sie es einfach "jinja.command" statt beispielsweise "jinja.py".

Dann sehen Sie ein geöffnetes Terminalfenster mit Textausgabe (falls Sie eine in Ihrer Anwendung haben), bis zur Zeichenfolge "Programm beendet".

Hat nicht geholfen, öffnet sich immer noch in Gedit.
Sie sollten die Erweiterung ".command" verwenden, um Dateien mit Konsolenskripten nur für macOS auszuführen. Die Antwort war über macOS, weil Sie ursprünglich nach Mac gefragt haben. Wenn Sie dasselbe wollen, aber für Ubuntu, sollten Sie einen anderen Ansatz verwenden: askubuntu.com/questions/286621/…
@MilanoSlesarik Ich werde als weitere Antwort ein Mac-spezifisches Tool hinzufügen. Damit können Sie Ihren Skriptsatz für alle Plattformen und die Mac-spezifische GUI getrennt halten.

Sie wollen ein Tool namens Platypus. Es bietet eine sehr klare Anleitung zum Umwandeln von Skripts in Apps.

Geben Sie hier die Bildbeschreibung ein

Platypus ist ein Mac OS X-Entwicklertool, das native Mac OS X-Anwendungen aus interpretierten Skripten wie Shell-Skripten oder Perl-, Ruby- und Python-Programmen erstellt. Dazu wird das Skript zusammen mit einer nativen ausführbaren Binärdatei, die das Skript ausführt, in ein Anwendungspaket verpackt.

Würde dies in einer Verzeichnisbibliothek funktionieren?