Wie kann ich ein Python-Skript über sein Icon auf Ubuntu ausführen

3

Ich habe ein einfaches Python-Skript (mit GUI in wx) geschrieben und möchte es unter Ubuntu ausführen, indem Sie einfach darauf doppelklicken. Ich habe es versucht

  1. chmod ugoa + x myScript.py
  2. Mein Skript hat am Anfang die Hash-Bang-Zeile (wie #! / usr / bin / env python)

aber immer noch nicht funktioniert, wenn ich darauf doppelklicke, wird es in Python IDLE geöffnet: /

Brian Brown
quelle
Bekommen Sie das gewünschte Verhalten, wenn Sie es von der Befehlszeile aus ausführen?
terdon
@terdon: wenn ich es im Terminal laufen lasse: python myScript.py Es klappt
Brian Brown

Antworten:

1

Ich bin nicht zu 100% mit Ubuntu verspielt, aber für mich sieht es so aus, als würden Sie das zugehörige Programm verwenden (durch Aufrufen) env ).

Ich würde versuchen, die Zeile in direktem Aufruf von Python zu ändern:

#!/usr/bin/python
Mario
quelle
danke, aber es ist jetzt noch schlimmer: es will sich überhaupt nicht öffnen, selbst in Python IDLE, als ich die Zeile geändert habe
Brian Brown
Welchen Befehl verwenden Sie, wenn Sie es von einem Terminalfenster (ohne IDLE) ausführen möchten?
Mario
Ich führe es so aus: python myScript.py und es funktioniert dann
Brian Brown
Das ist verrückt. Der Hashbang soll die Notwendigkeit beseitigen, ein solches Programm aufzurufen. Es sollte in der Lage sein, selbst herauszufinden, um welche Art von Skript es sich handelt.
Ian Atkin
Könnten Sie es mit einem einfacheren Skript versuchen? Vielleicht vermasseln Sie einfach das Arbeitsverzeichnis oder ähnliches. Sie sollten einfach verwenden können #!python nach deinem letzten Kommentar.
Mario
0

Ich denke, Mario ist hier auf dem richtigen Weg. Ist Python bei /usr/bin/python? Überprüfen Sie, indem Sie diesen Befehl ausführen:

which python

Prüfen Sie auch, ob Ihr Skript ordnungsgemäß ausgeführt wird, ohne Python anzugeben (dafür ist die Hash-Bang-Zeile gedacht):

myScript.py

Stellen Sie abschließend sicher, dass der von der Desktopverknüpfung ausgeführte Befehl (Rechtsklick = & gt; Eigenschaften) korrekt von der Befehlszeile aus ausgeführt wird.

AKTUALISIEREN

Da es sich scheinbar um ein Pfadproblem handelt, sdd den vollständigen Pfad und den Befehl zur Desktopverknüpfung. Rechtsklick = & gt; Eigenschaften und bearbeiten Sie den Befehl. Wenn Ihr Skript beispielsweise in /home/brian/myScript.py Verwenden Sie dies als Befehl:

python /home/brian/myScript.py
terdon
quelle
ja ist es, schau: $ which python /usr/bin/python aber es will nicht laufen, wenn ich in terminal eingebe: myScript.py nur ...
Brian Brown
Bekommen Sie eine Fehlermeldung, wenn Sie so laufen? Versuchen Sie es mit dem vollständigen Pfad auszuführen: /path/to/script/myScrip.py.
terdon
Es ist eine Sicherheitsmaßnahme. Sie können keine Nicht-PATH-Dateien ausführen, ohne mindestens einen relativen Pfad hinzuzufügen. Also versuchen Sie es auszuführen ./myScript.py eher, als myScript.py.
Mario
@BrianBrown, siehe aktualisierte Antwort.
terdon