[python] lancement du script avec crontab  [RESOLU]

Python est le langage de prédilection du Raspberry Pi

Modérateurs : Francois, Manfraid

Répondre
Avatar du membre
Frollo
Messages : 35
Enregistré le : mer. 2 sept. 2015 22:14

[python] lancement du script avec crontab

Message par Frollo » dim. 6 janv. 2019 10:50

Depuis quelques temps (depuis Strech ?) j'ai des problèmes d'encodage de mes scripts python (2.7).

J'ai remarqué que si un message doit s'afficher en console, lancé à la main ou depuis IDLE, il s'éxécute marche normalement, mais depuis crontab il plante (en fait on ne voit pas les conséquences de son exécution plutôt).
En cause, apparemment, les caractères accentués. Si on supprime tous les "print", là, les scripts s’exécutent... :|

Ci dessous l'en tête de mes scripts :

Code : Tout sélectionner

#! /usr/bin/python
# -*- coding: utf-8 -*-
 
#-------------------------------------------------------------------------
#   11/06/18    alerte mail journalière sur température >25
#-------------------------------------------------------------------------

import os
from os import path as os_path
import sys
import time
import MySQLdb   
import lib_mail

print "Caratère !"
puis

Code : Tout sélectionner


crontab -e

*/15 * * * python /home/pi/Documents/xx_mon_script.py

J'ai loupé quelque chose ?

domi
Administrateur
Messages : 2595
Enregistré le : mer. 17 sept. 2014 18:12
Localisation : Seine et Marne

Re: [python] lancement du script avec crontab

Message par domi » dim. 6 janv. 2019 11:14

Bonjour,

Je ne comprend pas bien ton problème, car "cron" n'étant pas une console, il est normal que les "print" ne s'affiche pas !

Avatar du membre
Frollo
Messages : 35
Enregistré le : mer. 2 sept. 2015 22:14

Re: [python] lancement du script avec crontab

Message par Frollo » dim. 6 janv. 2019 11:43

Évidemment que les print ne s'affichent pas, le problème est que cela fait planter le script, et qu'il s'exécute pas, alors que si on le lance il n'annonce aucun problème

Avatar du membre
Frollo
Messages : 35
Enregistré le : mer. 2 sept. 2015 22:14

Re: [python] lancement du script avec crontab  [RESOLU]

Message par Frollo » dim. 6 janv. 2019 12:05

Oups, il manquait un "*" dans la commande du cron :oops: :oops:
Autant pour moi...

vu avec un fichier test que m'aprettais à partager pour montrer le détail :

Code : Tout sélectionner

"""
#!/usr/bin/python
# -*- coding: utf-8 -*-

06/01/19    test print dans crontab
L. Michalski - janv. 2019
"""

# librairies
import os
from datetime import datetime
from os import path as os_path  

def datation():
    dt = datetime.now()
    horodate = dt.strftime("%Y-%m-%d_%H.%M.%S")
    print (horodate)
    return horodate


fic = datation()

# on se place à côté du fichier script
PATH=os_path.abspath(os_path.split(__file__)[0])
print PATH
os.chdir(PATH)

# on crée un fichier "datetime" pour voir l'execution du script
with open(fic,"a") as ecrit:
        ecrit.write("\n")
        ecrit.close()

print (u"caratère !")
et on programme le script :

Code : Tout sélectionner

*/1 * * * python /home/pi/Documents/190106_test_cron.py
et là, niet.

C'est normal en fait :

Code : Tout sélectionner

*/1 * * * * python /home/pi/Documents/190106_test_cron.py
Désolé du dérangement...

Feldou
Messages : 7
Enregistré le : mar. 19 févr. 2019 14:52

Re: [python] lancement du script avec crontab

Message par Feldou » mar. 19 févr. 2019 15:18

Salut, tu sembles avoir réglé le problème c'est cool

Bon à savoir quand tu testes des scripts avec le cron : un petit coup de nohup permet d'avoir les sorties pour ton debug :) sinon effectivement il les lance dans le silence le plus total

Répondre

Retourner vers « Python »