marlem
Anmeldungsdatum: 12. Juli 2016
Beiträge: 139
Wohnort: Dußlingen
|
Hallo, ich versuche herauszufinden wie meine Python-Programme benutzerfreundlich ausgeführt werden können unter Ubuntu 20.04.
Folgendes habe ich versucht:
| #!/bin/bash
# Might need pip3 install pyqt5
chmod +x PQTTexteditor.py
./PQTTexteditor.py
|
Dann in im Terminal der Aufruf:
| markus@markus-VirtualBox:~/Programme/PQT-Texteditor$ starter.sh
|
Fehlermeldung:
| markus@markus-VirtualBox:~/Programme/PQT-Texteditor$ starter.sh
starter.sh: Befehl nicht gefunden.
|
Die Datei "starter.sh" ist in diesem Verzeichnis. Was muß ich anders machen, damit es klappt?
|
Doc_Symbiosis
Anmeldungsdatum: 11. Oktober 2006
Beiträge: 4378
Wohnort: Göttingen
|
./starter.sh Oder Du packst das Verzeichnis PQT-Texteditor mit in die $PATH-Umgebungsvariable, dann kann man starter.sh von irgendwo aufrufen und muss nicht extra in dem Verzeichnis sein.
|
marlem
(Themenstarter)
Anmeldungsdatum: 12. Juli 2016
Beiträge: 139
Wohnort: Dußlingen
|
Doc_Symbiosis schrieb: ./starter.sh Oder Du packst das Verzeichnis PQT-Texteditor mit in die $PATH-Umgebungsvariable, dann kann man starter.sh von irgendwo aufrufen und muss nicht extra in dem Verzeichnis sein.
Was muß ich tun um das Verzeichnis in die $PATH-Umgebungsvariable zu packen?
|
fleet_street
Top-Wikiautor
Anmeldungsdatum: 30. August 2016
Beiträge: 2127
Wohnort: Hunsrück
|
… meine Python-Programme …
Der Trick mit der Umgebungsvariable PATH funktioniert aber nur für ein Programm. Sofern mehrere Starter den Namen starter.sh haben, gewinnt das Verzeichnis, das die oberste Priorität hat. Steht QT im Programmnamen für Qt bzw. handelt es sich um ein grafisches Programm? Dann wäre eine .desktop-Datei vielleicht besser. 🙄
|
marlem
(Themenstarter)
Anmeldungsdatum: 12. Juli 2016
Beiträge: 139
Wohnort: Dußlingen
|
Consolen-Anwendung und QT, beides also.
|
MisterIgo
Anmeldungsdatum: 23. April 2009
Beiträge: 947
|
Ich verstehe das Problem noch nicht. Du schreibst ja gerade ein Shellscript (ein Programm, dass von einem Interpreter ausgeführt wird), nur um ein Pythonscript (ein Programm, dass von einem anderen Interpreter ausgeführt wird) auszuführen. Wieso führst du nicht das Pythonscript direkt aus?
Im Shellscript hast du übrigens auch den richtigen Befehl zum Ausführen. Vergleiche:
| ./PQTTexteditor.py
./starter.sh
|
Falls es dir nur um den Namen des Scriptes geht, reicht auch ein Symlink:
| $ ./PQTTexteditor.py # das startet das Python-Script
$ ln -s PQTTexteditor.py starter.py # das legt den Symlink an. Jetzt kann man auch den Symlink zum starten benutzen
$ ./starter.py
|
Das hier gesagte zum PATH und .desktop-Dateien gilt immer noch synonym.
|
marlem
(Themenstarter)
Anmeldungsdatum: 12. Juli 2016
Beiträge: 139
Wohnort: Dußlingen
|
Ich habe es geschafft!
So startet man eine Python / QT Anwendung:
Dateiname: start.sh
| #!/bin/bash
python3 ./PQTTexteditor.py
|
So eine Konsolen-Anwendung:
Dateiname: start.sh
| #!/bin/bash
gnome-terminal -e 'python3 MarlemsPyAssistent.py'
|
|
rklm
Projektleitung
Anmeldungsdatum: 16. Oktober 2011
Beiträge: 12801
|
marlem schrieb:
So startet man eine Python / QT Anwendung:
Dateiname: start.sh
| #!/bin/bash
python3 ./PQTTexteditor.py
|
Das Skript start.sh ist überflüssig. Du willst lieber die Shebang-Zeile in PQTTexteditor.py unterbringen:
So eine Konsolen-Anwendung:
Dateiname: start.sh
| #!/bin/bash
gnome-terminal -e 'python3 MarlemsPyAssistent.py'
|
Auch hier willst Du die Shebang-Zeile in MarlemsPyAssistent.py setzen und nicht explizit "python3" davor schreiben. Übrigens reicht hier auch die /bin/sh statt der /bin/bash.
|
marlem
(Themenstarter)
Anmeldungsdatum: 12. Juli 2016
Beiträge: 139
Wohnort: Dußlingen
|
Danke für den Tipp habe es gerade getestet, klappt bei mir nicht!
|
rklm
Projektleitung
Anmeldungsdatum: 16. Oktober 2011
Beiträge: 12801
|
marlem schrieb: Danke für den Tipp habe es gerade getestet, klappt bei mir nicht!
Was klappt nicht und was ist der Fehler? Du musst schon etwas konkreter werden.
|
marlem
(Themenstarter)
Anmeldungsdatum: 12. Juli 2016
Beiträge: 139
Wohnort: Dußlingen
|
Mit meiner Methode werden die Programme nach Doppelklick auf die .sh-Datei ausgeführt.
Nachdem ich Deinen Code in die Python-Datei eingefügt habe und einen Doppelklick auf die
Python-Datei mache, passiert einfach gar nichts.
|
snafu1
Anmeldungsdatum: 5. September 2007
Beiträge: 2123
Wohnort: Gelsenkirchen
|
Hast du die Python-Datei denn auch ausführbar gemacht?
|
marlem
(Themenstarter)
Anmeldungsdatum: 12. Juli 2016
Beiträge: 139
Wohnort: Dußlingen
|
Ja, habe ich.
das steht in meiner Python-Datei:
| #!/usr/bin/python3
# -*- coding: utf-8 -*-
gnome-terminal -e 'python3 MarlemsPyAssistent.py'
|
|
seahawk1986
Anmeldungsdatum: 27. Oktober 2006
Beiträge: 11176
Wohnort: München
|
Du packst also ein Shell-Skript mit falschem Shebang in eine Datei mit der Endung .py und wunderst dich dann, dass der Python-Interpreter darüber stolpert?
|
snafu1
Anmeldungsdatum: 5. September 2007
Beiträge: 2123
Wohnort: Gelsenkirchen
|
marlem schrieb: | #!/usr/bin/python3
# -*- coding: utf-8 -*-
gnome-terminal -e 'python3 MarlemsPyAssistent.py'
|
Du hast da was missverstanden. Ein Shebang gehört direkt zum betreffenden Code. Die Datei wird dadurch unmittelbar mit dem angegebenen Interpreter (in dem Fall Python 3) ausgeführt. Und Python versteht nun mal keine Shell-Kommandos. Mit anderen Worten: Dein Python-Shebang gehört in die Datei MarlemsPyAssistent.py und die muss dann ausführbar gemacht und aufgerufen werden. Oder du lässt es beim alten Stand mit /bin/bash bzw /bin/sh und rufst darin stumpf Python auf, sofern dir der andere Weg zu kompliziert ist. Ist dann halt eine eigentlich unnötige zusätzliche Datei...
|