Willkommen Gast. Bitte einloggen oder registrieren. Haben Sie Ihre Aktivierungs E-Mail übersehen?
24.07.2021, 22:08:00

.
Einloggen mit Benutzername, Passwort und Sitzungslänge

Mitglieder
  • Mitglieder insgesamt: 25776
  • Letzte: joba48
Statistiken
  • Beiträge insgesamt: 746688
  • Themen insgesamt: 60054
  • Heute online: 375
  • Am meisten online: 2287
  • (22.01.2020, 19:20:24)
Benutzer Online

Autor Thema:  Python-Script wird beim Start nicht ausgeführt  (Gelesen 491 mal)

0 Mitglieder und 1 Gast betrachten dieses Thema.

Python-Script wird beim Start nicht ausgeführt
« am: 13.02.2021, 09:20:04 »
Hallo,
Linux Mint 20.1 Cinnamon läuft auf meinem Rechner.

Ich schaffe es nicht, dass mein Python-Script beim Start ausgeführt wird. Ich habe in "Startprogramme" unter Befehl eingefügt: "python3.8 /home/.../termin.py". Mit dem "jetzt ausführen"-Button funktioniert es, aber nicht beim Systemstart.
Was mache ich falsch?
« Letzte Änderung: 13.02.2021, 16:18:48 von Wenigwisser »

Re: Python-Script wird beim Start nicht ausgeführt
« Antwort #1 am: 13.02.2021, 10:01:16 »
Hallo Wenigwisser,
ich nehme an, das die grafische Oberfläche noch nicht bereit ist, wenn dein Programm startet. Dann können natürlich keine Fenster erstellt werden. Stelle mal eine Startverzögerung von 5s ein oder setze an den Anfang deines Skriptes ein "time.sleep(5)".

Zum Python: Sternchen-Importe sind böse :o . Auf Modulebene sollte kein Code stehen, ausser Funktionen-, Klassen- und Konstantendeklarationen (und natürlich Importe). Setze alles, dass jetzt auf Modulebene steht in eine Funktion, die "main" heißt und schreibe ganz am Ende des Skriptes:
if __name__ == '__main__':
    main()
So lassen sich dann auch einzelne Funktionen testen. Übergib einer Funktion alles, was sie zum Arbeiten benötigt, als Argumente. Der Funktion "starten" z. B. die Listbox.

Gruß
Whitie

Re: Python-Script wird beim Start nicht ausgeführt
« Antwort #2 am: 13.02.2021, 10:27:49 »
Hallo Whitie,
die Startverzögerung (30s) habe ich auch schon getestet. Die Tipps zum Script werde ich mir später anschauen. Danke.

Re: Python-Script wird beim Start nicht ausgeführt
« Antwort #3 am: 13.02.2021, 11:49:52 »
unter Befehl eingefügt: "python3.8 /home/.../termin.py"
Lass mal ".8" weg, mit dem Aufruf "python3 /home/.../termin.py" funktioniert es hier einwandfrei.

Edit:
Du kannst dir auch das Paket
apt install python-is-python3installieren, dann würde einfach "python" ausreichen.
« Letzte Änderung: 13.02.2021, 12:26:49 von ZeckeSZ »

Re: Python-Script wird beim Start nicht ausgeführt
« Antwort #4 am: 13.02.2021, 12:20:54 »
Hallo ZeckeSZ,

mag leider trotzdem nicht.

Re: Python-Script wird beim Start nicht ausgeführt
« Antwort #5 am: 13.02.2021, 12:28:08 »
Was für eine Fehlermeldung erhältst du, wenn du
python3 /home/pfad/zu/termin.pyim Terminal eingibst (die Befehlszeile aus dem Autostart)?

Re: Python-Script wird beim Start nicht ausgeführt
« Antwort #6 am: 13.02.2021, 13:21:59 »
Ich erhalte keine Fehlermeldung, das Script wird ausgeführt.

Re: Python-Script wird beim Start nicht ausgeführt
« Antwort #7 am: 13.02.2021, 13:39:50 »
Ungetestet:
#!/usr/local/bin/python3

import tkinter as tk
from datetime import datetime


def starten(lb):
    zaehler = 0
    jetzt = datetime.now()
    lb.insert(tk.END, f'Datum heute: {jetzt:%d.%m.}')
    lb.insert(tk.END, '----------------------')
 

def main():
    fenster = tk.Tk()
    fenster.geometry("300x220")
    fenster.title("Denk an folgende Termine:")
    lb = tk.Listbox(fenster, width = 240, height = 52)
    lb.config(font=('Comic Sans MS', 12), bg='lightyellow')
    lb.pack(side=tk.LEFT, fill=tk.BOTH, expand=0)
    end_button = tk.Button(fenster, text="fertig", command=fenster.destroy)
    end_button.place(x = 5, y = 150, width=150, height=30)
    starten(lb)
    fenster.mainloop()


if __name__ == '__main__':
    main()


Gruß
Whitie

Re: Python-Script wird beim Start nicht ausgeführt
« Antwort #8 am: 13.02.2021, 13:44:17 »
das Script wird ausgeführt
Merkwürdig, dann sollte es eigentlich auch aus dem Autostart heraus funktionieren.

Neuer Versuch:
Erstelle eine Textdatei mit folgendem Inhalt:
#!/bin/bash
python3 /home/pfad/zu/termin.py
exit 0
(Pfad natürlich wieder anpassen). Nenne sie z.B. termin.sh und mache sie ausführbar.

Mit Doppelklick darauf sollte termin.py starten und wenn ja, dann rufe dieses Script versuchsweise über den Autostart auf.

Re: Python-Script wird beim Start nicht ausgeführt
« Antwort #9 am: 13.02.2021, 16:15:36 »
Hallo ZeckeSZ,
so hat es geklappt. Danke. Danke auch Whitie für die Korrektur des Scripts. Das sieht gut aus.

Re: Python-Script wird beim Start nicht ausgeführt
« Antwort #10 am: 13.02.2021, 16:17:25 »
Prima, dann setze bitte noch ein "gelöst" oder "erledigt": dazu den Eröffnungspost "ändern" und das Präfix setzen. Dann sehen andere gleich, dass hier keine Hilfe mehr notwendig ist. (Anleitung: https://www.linuxmintusers.de/index.php?topic=3603.0)