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: /


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

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

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
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.