Nieuws:

Welkom, Gast. Alsjeblieft inloggen of registreren.
Heb je de activerings-mail niet ontvangen?

Auteur Topic: Python script laten opstarten  (gelezen 1250 keer)

Offline Mustangman1966

  • Lid
    • rickvandevoort
  • Steunpunt: Nee
Python script laten opstarten
« Gepost op: 2020/12/18, 11:26:18 »
Een vriend heeft een Python script gemaakt om achtergronden te laten veranderen.
Maar hoe kan ik dat script automatisch laten opstarten in Ubuntu 20.04?
Ubuntu 20.04 pc 64 bit, Xubuntu 16.04 laptop HP 530 en Ubuntu Server 20.04 met Nextcloud 19, Rasberry Pi Libreelec

Offline vanadium

  • Lid
  • Steunpunt: Nee
Re: Python script laten opstarten
« Reactie #1 Gepost op: 2020/12/18, 11:49:39 »
Via de "opstarttoepassingen" van je desktop. In Ubuntu 20.10 is er een toepassing "Startup Applications" (commando: nome-session-properties), maar het kan zijn dat je voor vroegere versies terecht moet in "Gnome Tweaks", tab "Startup applications". Je kan ook steeds zelf een starter (.desktop bestand) aanmaken in ~/.config/autostart

Offline Mustangman1966

  • Lid
    • rickvandevoort
  • Steunpunt: Nee
Re: Python script laten opstarten
« Reactie #2 Gepost op: 2020/12/18, 12:13:57 »
Via de "opstarttoepassingen" van je desktop. In Ubuntu 20.10 is er een toepassing "Startup Applications" (commando: nome-session-properties), maar het kan zijn dat je voor vroegere versies terecht moet in "Gnome Tweaks", tab "Startup applications". Je kan ook steeds zelf een starter (.desktop bestand) aanmaken in ~/.config/autostart
Ik heb het geprobeerd via Opstarten in Gnome Tweaks, maar hij start alsnog niet op.
Dit is het script:
import os
import sys
import random
import time
import subprocess

customArgs = []
customArgs.append('--path=')

path = None

for customArg in customArgs:
    for sysArg in sys.argv:
        sysArg = sysArg.split('=')
        cmd = sysArg[0]
        try:
            val = sysArg[1]
        except:
            continue
        if cmd in customArg:
            if cmd == '--path':
                path = val
               
if path is None:
    path = '/home/rick/Afbeeldingen/Wallpapers'

def ChangeWallp():
    files = []
    try:
        for r, d, f in os.walk(path):
            for file in f:
                files.append(os.path.join(r, file))
        os.system('gsettings set org.gnome.desktop.background picture-uri file:///'+str(random.choice(files)))
        os.system('gsettings set org.gnome.desktop.screensaver picture-uri file:///'+str(random.choice(files)))
    except:
        print('')
    time.sleep(120)
    ChangeWallp()
ChangeWallp()

Hoe krijg ik dit script dan werkend via "startup Applications" ?
Ubuntu 20.04 pc 64 bit, Xubuntu 16.04 laptop HP 530 en Ubuntu Server 20.04 met Nextcloud 19, Rasberry Pi Libreelec

Offline MauRice2

  • Lid
  • Steunpunt: Nee
Re: Python script laten opstarten
« Reactie #3 Gepost op: 2020/12/19, 13:59:03 »
Mustangman1966

Ben geen kei met python.
Maar volgens mij heb je twee mogelijkheden in die 'OpstartToepassingen'

A)
Je zet in de opdracht regel:
python <Path/Naam-Script>

B)
Boven in het scrpit de onderstaan regel toeveogen:
#!/usr/bin/python
Script uivoerbaar maken en de opdrachtregel zet je het  <Path/Naam-Script>

De regel #!/usr/bin/python zeg dat het script met python moet worden uitgevoerd.
Als er #!/bin/bash staat is het een bash-script e.d.
Maar moet wel de eerste regel zijn.

Veel plezier ermee.
MvG,
MauRice
Registered Linux user: 473556

Offline erik1984

  • Lid
    • erik1984
  • Steunpunt: Nee
Re: Python script laten opstarten
« Reactie #4 Gepost op: 2020/12/19, 14:40:36 »
Werkt dat trouwens ook bij een script dan eindeloos blijft draaien zoals in dit geval? Ik had in Ubuntu MATE een soortgelijk script en uiteindelijk een ander scriptbestand gemaakt van 1 regel om het daadwerkelijk script aan te roepen
/pad/naar/mijnscript.sh && is om het op de achtergrond te draaien.

Maar weet niet hoe dat tegenwoordig in de gewone Ubuntu werkt met opstartscripts.

Offline Mustangman1966

  • Lid
    • rickvandevoort
  • Steunpunt: Nee
Re: Python script laten opstarten
« Reactie #5 Gepost op: 2020/12/20, 13:24:19 »
Mustangman1966

Ben geen kei met python.
Maar volgens mij heb je twee mogelijkheden in die 'OpstartToepassingen'

A)
Je zet in de opdracht regel:
python <Path/Naam-Script>

B)
Boven in het scrpit de onderstaan regel toeveogen:
#!/usr/bin/python
Script uivoerbaar maken en de opdrachtregel zet je het  <Path/Naam-Script>

De regel #!/usr/bin/python zeg dat het script met python moet worden uitgevoerd.
Als er #!/bin/bash staat is het een bash-script e.d.
Maar moet wel de eerste regel zijn.

Veel plezier ermee.
Helaas krijg ik het script nog niet aan de praat.

Iemand nog een ander idee?
Ubuntu 20.04 pc 64 bit, Xubuntu 16.04 laptop HP 530 en Ubuntu Server 20.04 met Nextcloud 19, Rasberry Pi Libreelec

Offline MKe

  • Lid
  • Steunpunt: Nee
Re: Python script laten opstarten
« Reactie #6 Gepost op: 2020/12/20, 14:05:22 »
Kun je het script wel runnen vanuit de commandline? Overigens is in 20.04 het commando voor Python python3.

Offline Mustangman1966

  • Lid
    • rickvandevoort
  • Steunpunt: Nee
Re: Python script laten opstarten
« Reactie #7 Gepost op: 2020/12/23, 15:50:51 »
Kun je het script wel runnen vanuit de commandline? Overigens is in 20.04 het commando voor Python python3.
Ik heb script kunnen draaien vanuit de terminal.

Tevens weet ik nu wat ik niet goed deed.
In Opstarten was ik vergeten in de opdracht regel "python3" ervoor te zetten. Nu werkt hij wel zoals het hoort op mijn laptop.

Ubuntu 20.04 pc 64 bit, Xubuntu 16.04 laptop HP 530 en Ubuntu Server 20.04 met Nextcloud 19, Rasberry Pi Libreelec

Offline Bloom

  • Lid
  • Steunpunt: Ja
Re: Python script laten opstarten
« Reactie #8 Gepost op: 2020/12/23, 17:18:49 »
Je kunt ook de she-bang veranderen in:
#!/usr/bin/python3
En dat zorgt er dan voor dat python3 aangeroepen wordt en het is dan niet nodig zelf te beginnen met het aanroepen van python3.