Bonjour à tous, je suis débutant en utilisation de de la raspberrypi qui tourne en rasbienne.
Voici ma question est comment démarre le programme qui est programmée en Python.
au démarrage du raspberrypi?
-----
Bonjour à tous, je suis débutant en utilisation de de la raspberrypi qui tourne en rasbienne.
Voici ma question est comment démarre le programme qui est programmée en Python.
au démarrage du raspberrypi?
L'OS s'appelle Raspbian.
Un programme, réalisé en Phyton ou autre langage, se lance quand tu le lui dit.
La commande finale est un script bash (en ligne de commande).
Tu trouveras plein de réponces concernant le PI ici : https://www.raspberrypi.org/ (forum en français) et sur d'autres sites
Bonjour
Un programme python (c'est-à-dire un fichier avec une extension ".py") peut être lancé depuis une ligne de commande en invoquant l'interpréteur python. Par exemple « python mon_programme.py » jusqu'à la version 2, ou « python3 mon_programme.py » sous la version 3 (voire « py mon_programme.py » sur certains systèmes).
Un script python est un script shell écrit en langage python. Il est déclaré comme fichier exécutable auprès du système (c.f. la commande chmod), et sa première ligne contient le chemin vers l'interpréteur python dans le système de fichiers, précédé d'un caractère # de mise en commentaire. Par exemple « #/usr/bin/python » jusqu'à la version 2.
rebonjour J'ai utilisé sudo crontab -e.dans le crontab j'ai mit @reboot python /home/pi/monfichier.py &
le script fonctionne mais ne genère pas le fichier text. ci joint je met le code en python:
import serial
port = serial.Serial("/dev/ttyAMA0",baudrate = 9600, timeout=3.0)
#envoie 1
port.write("\n1")
#créer fichier test qui est le nom du fichier txt
save = open ('test','a')
#mettre caractère cd dans le fichier txt
save.write('\ncd')
save.close()
mais sa ne fonctionne pas en script je ne comprend pas.
Réflexion : où se trouve le fichier "test" ?
Dans home/pi.
... et où est montée la clé USB qui doit recevoir le fichier ?
dans /media/28E2-AC28
pour le moment je ne parvient pas d'enregistre le fichier test qui est sous format text dans la cléf USB.
tous ce que je sais faire est d'envoyé le caractère sur le port UART du raspberry pi en script et en normale.
en script je ne parvient pas crée le fichier txt mais en normale oui.
Ça devrait donc peut-être apparaître dans le code, à moins de se placer préalablement dans ce dossier pour l'exécuter.
...
[EDIT]
Oups... Dans ce que j'ai écrit plus haut, j'ai oublié un caractère « ! » après le « # ».
La première ligne du script doit être de la forme « #!/usr/bin/python ».
[/EDIT]
Cette ligne de code je met au début du programme python?
Au début du script python. Si l'interpréteur python utilisé est bien à l'endroit indiqué (à adapter selon la situation).
Alors pour ça j'ouvre sudo crontabe -e et je met cette ligne au début du @reboot python /home/pi/monfichier.py &
??? Désolé, jusque là ce n'était pas très clair pour moi (et je ne sais pas si ça l'est encore.)
La ligne en question est un élément qui indique à l'interpréteur de commandes (shell) qu'il faut utiliser python pour interpréter les commandes suivantes du fichier.
Ce que tu présentes ici n'est pas un script python, mais une commande qui invoque l'interpréteur python pour exécuter le programme python /home/pi/monfichier.py .
Il faut que tu choisisses : soit exécuter un script python, soit exécuter un programme python. Mais tu ne peux pas faire un mix des deux.
Aight ...
Je m'excuses.
Je veux lancer le programme en python dé au démarrage de m'as raspberrypi qui permet de récupérer les données sur l'UART du raspberrypi et ensuite de l'enregistré sous fichier txt dans la clé usb.
Pour effectué cette tâche, j'ai commencé par un simple programme celui que j'ai déjÃ* parlé.
En recharche sur internet, j'ai trouvé la plus simple manière pour lancer le programme au démarrage du raspberrypi été avec le 'crontab -e en ajoutant Ã* la fin du page la commande suivante @reboot python /home/pi/monfichier.py &.
Par cette commande j'ai réussi Ã* démarré mon programmes au démarrage. Il sort sur le port UART un 1(tx). Ceux que je lui demande de faire. Mais il ne parvient pas créer fichier et enregistrer tous les données sur l'UART (Rx).
pensez vous que c'est possible?
Aight ...
Je m'excuses.
Je veux lancer le programme en python dé au démarrage de m'as raspberrypi qui permet de récupérer les données sur l'UART du raspberrypi et ensuite de l'enregistré sous fichier txt dans la clé usb.
Pour effectué cette tâche, j'ai commencé par un simple programme celui que j'ai déjà parlé.
En recharche sur internet, j'ai trouvé la plus simple manière pour lancer le programme au démarrage du raspberrypi été avec le 'crontab -e en ajoutant à la fin du page la commande suivante @reboot python /home/pi/monfichier.py &.
Par cette commande j'ai réussi à démarré mon programmes au démarrage. Il sort sur le port UART un 1(tx). Ceux que je lui demande de faire. Mais il ne parvient pas créer fichier et enregistrer tous les données sur l'UART (Rx).
pensez vous que c'est possible?
Oui, c'est forcément possible. Mais pour comprendre pourquoi cela ne fonctionne pas, il faut pouvoir regarder ce qui se passe : message d'erreur, chemin du fichier à créer, droits d'accès... (et ce n'est pas moi qui vais pouvoir deviner, à distance et en aveugle).
Normalement il es sensé d'enregistrer à /home/pi car c'est la qui est situé monfichier.py
Peut être c'est pas juste, mais c'est comme ça fonctionne lorsque je lance moi même le programme.
Bonjour,
Plusieurs remarques:
1) Si tu fais
ton script sera exécuté en root.Code:sudo crontab -e
éxecutera ton script en tant qu'utilisateur normal.Code:crontab -e
2) Dans ton script python, il vaut mieux donner le chemin complet de ton fichier à créer, et avec une extension. C'est peut-être pour ça que tu ne trouves pas ton fichier, car il est exécuté en root. (tu as utilisé sudo crontab -e)
3) Pour lancer un script shell au démarrage, la solution de crontab en est une, mais tu peux aussi créer un fichier .desktop dans /home/pi/.config/autostart/script.desktopCode:save = open ('/home/pi/test.txt','a')
Tu mets ça dedans, avec le chemin de ton script:
et dans mystart.shCode:[Desktop Entry] Type=Application Exec=/home/pi/Desktop/mystart.sh
Ça oblige à créer deux fichiers, mais si tu as plusieurs scripts (ou commandes) à lancer au démarrage, tu peux tout lancer dans le même mystart.sh (éventuellement en temporisant avec un 'sleep 1' entre chaque ligne)Code:#! /bin/bash python /home/pi/mon_script.py
Voilà, en espérant que ça puisse aider.
PS: Poser cette question dans un forum informatique aurait été plus judicieux
https://www.raspberrypi.org/forums/viewforum.php?f=65
http://forum.ubuntu-fr.org/