Python Programm startet nicht auf Mac?

Rapid1898

Lt. Junior Grade
Registriert
Jan. 2012
Beiträge
312
Hallo,

ich habe ein Python-Programm geschrieben und wollte das jetzt meinem Auftraggeber zur Verfügung stellen
(ich hab das Programm auf Win10 geschrieben und dann in einer virtuellen Umgebung mit Mojave compiliert und getestet - hat alles bestens funtioniert)

Jetzt habe ich die compilierte Datei verschickt und am Auftraggeber-Rechner folgendes Probem:
Aus welchem Grund auch immer ist auf seinem Mac das Programm standardmäßig mit dem Texteditor verknüpft - bei mir standardmäßig als Terminal/Unix. Jetzt habe ich versucht für den Programmstart eben Terminal fix auswählen (wird mit nicht bei den vorgeschlagenen Programmen angezeigt - aber bei alle Programm kann ich es dann auswählen). Wenn ich dann aber auf öffne klicke passiert nichts...

(auf meinem Rechner startet das Programm und dann erfolgen die verschiedenen Ausgaben im Terminal - auf seinem Rechner passiert nichts...)

Habe auch versucht das Programm direkt im Terminal zu starten - das geht aber nur mit sudo und dann kommt eine Fehlermeldung.

Woran kann dieses Verhalten liegen bzw. wie kann ich das Programm aus dem Filemanager starten für Durchführung im Terminal.
 
Python ohne Pythoninterpreter auf dem ausführendem System macht kein Spaß.

Was meinst du mit "compilieren"? Python kann Bytecode erzeugen, der aber keine ohne Interpreter ausführbaren Programme ausspuckt. Es lassen sich aber auch Pakete schnüren, die den Interpreter mitbringen...
 
  • Gefällt mir
Reaktionen: eigsi124
Ja mit Pyinstaller ein Excecutable auf dem Mac erstellt - sollte alles dabei sein.
 
Schreib doch bitte so, wie du selbst gern Bugreports bekommen würdest -.-
Also nicht nur "ich habe X verwendet" sondern "Ich habe X verwendet, dass sind die Einstellungen/Parameter"

Auf dem Zielsystem wäre analog durchzugehen.
  • Sind alle benötigten Dateien/Abhängigkeiten wirklich im Paket
  • Sind alle Rechte ordentlich gesetzt
Und spätestens wenn auf dem nicht funktionierendem System irgendwas im Terminal ausgeführt werden soll, sollte es Fehlermeldungen, Statuscodes und/oder vergleichbares auftauchen...
 
  • Gefällt mir
Reaktionen: BalthasarBux und Zerstoerer
Welche Python-Version und welches OS benutzt dein Auftraggeber?

Apple liefert bei macOS meines Wissens nach nur Python 2.7 mit, nicht 3.0 ... wenn dein Skript also mit Python 3.0 geschrieben ist, müsste das am besten via Homebrew nachinstalliert werden.
 
Auftraggeber verwendet Mojave und daher habe ich auch in der virtuellen Umgebung Mojave verwendet.

In meiner virtuellen Umgebung habe ich Python 3.x installiert und dann natürlich mit PyCharm auch ausführlich getestet.

Executable habe ich dann erstellt mit:
pyinstaller --hidden-import=pkg_resources.py2_warn --onefile example.py
(den --hidden Befehlt habe ich nach googeln ergänzen müssen da die Erstellung sonst nicht funktioniert)

Damit wir dann eine Excecutable erstellt in dem grundsätzlich alles (Code, Module, usw.) enthalten ist.
Dieses Executrable kann ich in meiner virtuellen Mojave-Umgebung auch von über aufrufen und tut was es tun soll.

Was bedeutet "alle Rechte ordentlich gesetzt"?
(ich komme aus der Windows-Welt und ich vermute hier eigentlich ein relativ triviales Einstellungsprobelm - bin aber da noch nicht drauf gekommen...)

Was beim Auftraggeber komisch ist -
  • das Executable wird bei mir im Terminal geöffnet - bei ihm im Texteditor
  • wenn das Executable per Auswahl mit dem Terminal geöffnet wird (scheint nicht bei den empfohlenen Programmen auf) dann passiert leider nix - Terminal wird nicht geöffnet - auch (leider) nicht mit einer Fehlermeldung...

Da ich mit MacOS nicht vertraut bin weis ich leider auch nicht wo ich da nachschauen kann / soll...
 
Mit dem Befehl kann dein Auftraggeber nachsehen, welche Pythonversionen er installiert hat:

Code:
which -a python python2 python2.7 python3 python3.6

1593933179807.png


Aber, es könnte auch sein dass dein Auftraggeber die Datei über die Kommandozeile erst mit

Code:
chmod +x filename

ausführbar machen muss.


Was natürlich auch sein kann ist, dass dir die Sicherheitseinstellungen von macOS einen Strich durch die Rechnung machen. Software aus unbekannten Quellen muss für gewöhnlich erstmal per Rechtsklick --> Öffnen ausgeführt werden. Danach kann man sie dann auch per klassischem Doppelklick ausführen
 
Ok.

Ich dachte eigentlich das durch den Pyinstaller dann alles notwendige verpackt ist und der Auftraggeber dann nicht mehr machen muss. Muss der jetzt tatsächlich Python 3.x auch noch manuell installieren?

Und kann ich die Datei nicht schon auf meinem Gerät ausführbar machen um ihm den Terminalbefehl zu ersparen?
(hätte gerne das er einfach auf die Dstei klickt und nicht manuell machen muss...)

Und mit Rechtsklick öffnen haben wir ohnehin versucht das Programm zu starten - das wäre nicht das Problem - aber es tut dann einfach auf seinem Gerät nix...
 
Vielleicht habe ich das Problem gefunden - lt. diversen Internet-Einträgen sollten die Excutables immer gezippt verschickt werden (weil dann die Zuordnung zum Unix/Terminal erhalten bleibt) - wenn man das File direkt hochlädt und dann woanders herunterlädt wird es (u.a. aufgrund der fehlenden Dateiendung) als Texteditor zugewiesen und die Zuordnung zum Unix/Terminal geht verloren.

Klingt das plausibel?
 
Ja, kann durchaus sein :) War bei mir mal mit per Telegram verschickten Apps so, dass man die nicht mehr ausführen konnte
 
Wenn jede Datei die als Download kommt ihre Ausführungsrechte behalten würde, wäre das etwas problematisch.
Und das Setzen von Rechten ist in Post #4 bereits erwähnt. Der TE ist nur zu faul für anscheinend bezahlte Arbeit sich mal mit dem Rechtesystem unter Unix zu beschäftigen -.-
 
  • Gefällt mir
Reaktionen: Zerstoerer
Zurück
Oben