[Résolu] Problématique de démarrage automatique scrypte python

Bonjour à tous,

Je cherche à créer un photomaton à l’aide du tutoriel suivant : Tutoriel

Le tutoriel étant bien fait, je m’en suis bien sorti, et c’est à peu pret fonctionnel.
Quand je lance en commande le script, il fonctionne.

Il me reste cependant un point problématique : le démarrage automatique.

J’ai mis à jour le fichier rc.local en incluant la ligne
/home/pi/scripts/photobooth/startup_script &
Cependant, au démarrage, pas de changement.

Ce liens fait référence au fichier codé suivant :
#!/bin/sh
sleep 6
sudo python /home/pi/scripts/photobooth/photo_booth.py

Mes fichiers sont bien en 775

J’ai consulté ce que j’ai trouvé au sein de ce forum, mais je n’ai pas trouvé de réponse.

Auriez-vous une idée ?

Merci beaucoup.

Hello !

Je ne suis pas spécialiste des scripts et autre @jojo s’y connait bien mieux que moi, mais spontanément je te dirais de mettre le full path pour python ( /usr/bin/python ) pour appeler ton script.

Full path python ?
Je suis débutant, je m’y connais fort peu.
Tout python n’est pas installé ?
Je vais tenter de trouver des réponses sur le forum. Merci :slight_smile:

Remplace

sudo python /home/pi/scripts/photobooth/photo_booth.py

par

sudo /usr/bin/python /home/pi/scripts/photobooth/photo_booth.py

Comme les scripts sont lancés sans envrionnement, il faut indiquer le chemin complet des fonctions/programmes que tu utlises dans tes scripts

Yo !

Je suis le jojo mentioner plus hauts ,

donc déja Premier question c’est un script python 2 ou python 3 ?

ensuite j’ai 2 chose qui me chiffonne dans cette ligne

le fichier s’appelle bien startup_script ou plutôt startup_script.sh ?

Ensuite le & sa veux dire que tu souhaite lancer le programme en tache de fonds

aprés

le sudo est pas obligatoire(a pars si tu des fonction qui on besoin de permission spécifique )et la je crois qu’il rentre en conflits direct avec le & du précédent

voila réponds déja a sa me permetra de voir plus clair et de t’indiquer le full path qu’il te faut .

Bonoir, merci à vous deux.

@Gpapig :
J’ai testé de mettre ta ligne de code dans startup_script. Celà n’a malheureusement rien changé. J’ai remis la feuille à l’initial.

@jojo :
J’ai profité d’un script, je ne saurais te dire si python 2 ou python 3. J’ai tenté de me renseigner sur la différence entre les deux, et hormis les changements que j’ai appris entre les deux, je ne sais toujours pas te répondre.
Le tuto date de 2014.
Voici le script : lien script

le fichier s’appelle bien startup_script Je ne vois pas d’extension.

Bonne soirée

Salut ,

tu en avais pas besoin car t’a déjà le path en débuts script 1er ligne

#!/usr/bin/python

et normalement vu tu appelle déja avec l’environnent python .

tu a pas besoin de le déclarer vu tu le fait déja dans cette ligne .

C’est du python 2 au faite

Ok , par contre tu lance comment ton script normalement(réponds a sa car j’ai ma petit idée ) ?

au vu de celui il a pas d’interface graphique ton script phyton , je me trompe ?
par contre retire le & dans ta ligne de rc.local

ensuite dernier question est ce que tout tes script (startup_scipt et photo_booth.py)
sont exécutable ?

Bonjour,

Pour lancer le script, j’ouvre une invite de commande, et je lance via la ligne :

sudo python ~/scripts/photobooth/photo_booth.py

Non, pas d’interface.
Déjà les basiques, après je verrai pour amélioration.
Ce serait plus que génial celà dis. :slight_smile:

J’ai déjà testé sans le « & », celà n’a rien changé.

J’ai trois scripts dans le dossier, et j’ai utilisé

sudo chmod 755 *
Ils devraient être executables ?

Bonne journée

c’est normal , sa vient du faite que tu n’a pas d’interface justement

et ben voila il faut aussi que tu appelle un terminal pour que tu vois ton code s exécuter tu comprends ?

je t’explique dans la soirée comment faire, le mieux serait d’utiliser un autostart au lieu de rc.local pour la simple et bonne raison tu peux faire cette configs plus facilement

ben tu sait ce que tu tapé ?

sinon petit révision des droit en octals mdr

Droits en octal
chaque « groupement » de droits (pour user, groupé et other) sera représenté par un chiffre et à chaque droit correspond une valeur :

r (read) = 4
w (write) = 2
x (execute) = 1
- = 0

mais pour te répondre oui il est exucatble : pour l’utilisateur pour le groupe et les autre

donc pour tout le monde :wink:

P.S : @foluia tu est a l’aise en ligne de commande , avec nano ou tu fais tout en graphique ?
c’est pour l’autostart que je vais t’écrire , savoir comment je te fais le tuto ,je pourais aussi te faire un script automatique

Bonsoir,

Je débute sous raspberry, je comprends la plupart des choses que je fais, mais ca reste très faible comme connaissances :wink:
J’ai un environnement graphique.
Cependant, j’utilise régulièrement nano pour les modifications.
Puis-je t’aider ?
Je suis en train de me renseigner avec les infos que tu m’as donné, mais dans l’immédiat, je n’ai pas encore la solution :slight_smile:

Bonne soirée à tous

Non j’ai se qui faut :wink: le nom du script python et son chemin

je te fais sa demain pas de pi sous la main ,car faut je teste avant de te rendre la copie :slight_smile:

ok, trés bien on s’en servira qu’une seul fois et sa m’évite d’avoir a t’automatiser l’écriture de l’autostart (meme si c’est pas le temps que sa me prendrait)

pas de problème t’inquiète je vais trés faire simple et
on aura d’ailleurs plus besoin de la ligne dans rc.local ni de ton startup_script , en gros l’autostart va lancer directement ton script dans un terminal au démarrages

Salut désolé d’avoir été aussi long , mais sa m’a pris plus de temps que prévu ,car je suis tombé sur un os, j’ai appris plusieurs chose je les notes car sa pourrait servir a d’autre .

-On ne peux pas lancer le script python (si celui si est sans interface graphique ) via un autostart en appelant le terminal depuis celui si ,alors que c’est possible de le faire pour tout autre commande je le fait d’ailleur mais pas pour phyton ,j’ai pas trouvé la configs
-Impossible non plus de passer par rc.local en lançant le script qui appelle le terminal

La solution c’est tout simplement de lancer un script par l’autostart qui contient l’appelle terminal et de l’interpréteur python .

Voila le tuto pour toi l’ami

1)Tu commence par renommer le script startup_script par startup_script.sh (finalement on en a besoin )

2)tu modifie ton script startup_script.sh
il doit contenir 2 ligne les voici

#!/bin/sh
lxterminal -e sudo python /home/pi/scripts/photobooth/photo_booth.py

tu hésite pas a corriger si je me suis tromper dans les chemins :wink:

  1. on va créer l’autostart ,tu tapes sa dans ton terminal

nano ~/.config/autostart/photo.desktop

et tu copie sa a l’intérieur

[Desktop Entry]
Type=Application
Name=photo start
Exec=bash /home/pi/scripts/photobooth/startup_script.sh

  1. tu oublie pas de retirer ta ligne dans rc.local

/home/pi/scripts/photobooth/startup_script &

on en a plus besoin

  1. tu reboot et tu me dis sa marche :wink:

Bonsoir jojo

Merci beaucoup pour tout le temps que tu me consacres !

Je viens de tenter ta manip. Malheureusement, nada.
Rien ne s’ouvre, et la led verte de lancement du script ne s’allume pas.

Les infos que je peux te donner :

  • les liens sont les bons.
  • Je n’ai pas refait de chmod 755, donc peut être problème de droit
  • Je ne sais pas si c’est normal, mais d’office, je n’avais pas de dossier autostart et de fichier photo.desktop. J’ai du les créer à la mano avant d’y insérer ton script. Je n’ai pas non plus mis chmod755.
    Dois-je mettre en mode executable ?

Les questions/réflexions que je me fais :
Tu parles de la problématique interface graphique/invite de commande.
Pour ma part, j’ai installé la distribution de base avec interface graphique pour directement pouvoir configurer le raspberry avec clavier/écran. Dans le tutoriel, ils parlent de contrôle via SSH, ce que je n’ai pas réussi à faire.
Peut-être faut-il que je me penche sur comment supprimer mon interface graphique ?
Ou sinon créer une interface graphique, qui justement permettrait de lancer le script python ?

pas de panique ! on va régler sa :wink:

avant de s’occuper de l’autostart on va vérifier
que startup_script.sh fonctionne.
Rends le exécutable(ainsi que le script python ) et ensuite tu double clic sur startup tu esaye dans un premier de « lancer dans un terminal » si sa marche , tu ferme et tu re double clic et tu choisi cette fois si exécuter si l’un marche et pas l’autre sa signifie que ton code python est lancé sans interruption , et on corrigera après

eu alors la il ya des erreurs qelque par.
Ma commande

a retourné une erreur ?

autostart se trouve dans .config qui est un dossier caché qui se trouve dans ton home/pi

pour l’afficher tu fais ctrl+h dans ton dossier tu devrais avoir tes dossier caché :wink:

efface ceux que tu a créer

de base normalement autostart est la par défaut

photo.desktop c’est le nom du fichier que j’ai créer qui va etre renomer automatiquement par photo start

P.S: est ce que par hasard tu a discord sur ton pc ou smartphone ,car serait plus facile et plus rapide
pour réglé le problème , je l’utilise souvent ici avec des membre

Bonsoir Jojo

Après avoir mis en executable, celà fonctionne !

Hier lors de l’enregistrement du fichier créé avec ta commande

nano ~/.config/autostart/photo.desktop
j’avais un message d’erreur comme quoi le fichier et le dossier n’existaient pas.
C’est pour celà que je les avais créé à la main.
Ce soir, aucun problème. Je n’ai pourtant pas changé les conditions.
L’essentiel étant que celà fonctionne, je suis plus que ravis !
Comment te rendre ce service ?

J’ai des questions pour le reste du projet. Par exemple des photos sauvegardées dans un dossier lors de la prise de vue sont par la suite supprimées. Je ne comprends pas pourquoi.
Je vais faire un autre topic pour bien différencier les sujets.

PS : je ne connaissais pas « discord », je suis en train de l’installer

Bonne soirée

Ok ,trés bien , donc autostar n’est pas la de bases sa veux dire , désoler j’était persuader qu’il y était sur raspbian oups

Aucun on est bénévole ici et peut etre un jour c’est toi qui trouvera la solution a un de mes problémes lié au pi et mine de rien sa ma permit dans apprendre plus sur l’autostart car je m’en sert pas ailleurs que sur raspbian et j’ignorait qu’on pouvait pas balancer le lxeterminal directement en commande

Sinon tu peux éditer ton sujet est mettre [résolue] devant

ok pour le coup on en pas besoin , je m’en sert que quand sa risque de prendre plus de temps ,par se qu’en message interposé sa peut être long ,et des fois on a des impatients se qui fait qui se perde tout seul aprés nous vu qu’on a pas la machine sous les yeux , sa me permet aussi d’expliquer qu’elle que notion ,car certain non aucune basse sur linux mais je m’assure ensuite qu’il poste le résultat ensuite ici ,pour garder un compte rendue ,une trace écrite pour les suivants

n’hésite pas a ouvrir un nouveau sujet oui et a clôturer celui si :wink:

bonjour a tous

je voulais avoir un d’aider pour un programme.
je voudrais que lorsque j’allume mon raspberry, que un script python demarre tous de suite.

donc est ce que je suis obliger de mettre cela a la premiere ligne:" #!/usr/bin/python"

merci

Salut ,

tous dépends ,
-déja celle si #!/usr/bin/python , c’est pour du python 2 , si c’est pour du python 3 c’est #! /usr/bin/env python3

-si tu le lances via un script , il est pas obligatoire car tu appelle l’interpréteur dans ce script , donc le système d’exploitation comprends se que tu veux .

Cette ligne c’est un renseignement pour que le système d’exploitation sache quel environement il doit utiliser, ais aussi les gens qui passe a prés d’un coup d’oeil on peux savoir .

Sa te coûte rien de la mettre , c’est pas sa qui te ferrait planter le programme

salut

ok ok merci pour cette confirmation.

mais quelqu’un serait me dire comment écrire, ou plutôt où placer mon programme python.
je ne sais pas mais il me manque une petit chose car tous fonctionne mais au démarrage de mon raspberry mon programme ne s’exécute pas automatiquement. :expressionless:

merci

Tu uttilise quoi pour le lancer automatiquement ?
l’autostart ?

ou tu veux mais il faut que tu renseigne son chemin dans ce qui permet de lancer (l’autostart si tu utilise cette méthode )