Cron 一个 Python3 脚本

Cron a Python3 script

我无法 cron 作业 python3 脚本,它不起作用,我已经尝试过:

*/1 * * * * python3 /home/pi/pythons/bmp280_influxdb.py

*/1 * * * * /usr/bin/python3.7 /home/pi/pythons/bmp280_influxdb.py

我尝试创建一个 .sh 文件,其中包含:python3 /home/pi/pythons/bmp280_influxdb.py 并 cron .sh 文件,但它也不起作用。

我也试着用 chmod +x bmp280_influxdb.py 使 bmp280_influxdb.py 可执行文件并直接使用 */1 * * * * /home/pi/pythons/bmp280_influxdb.py

知道 :

*/2 * * * * sh /home/pi/scripts/cputemp.sh 有效

我不知道该怎么办

我已经对路径进行了三重检查,当我通过 python3

调用它时,scipt 可以正常工作

脚本将传感器的数据发送到 influxdb :

#!/usr/bin/python3
#import influxdb libs
import time
import sys
import datetime
import json
from influxdb import InfluxDBClient
#import bmp280 libs
import board
import busio
import digitalio
import adafruit_bmp280

# Create the InfluxDB client object
client = InfluxDBClient(host='localhost', port=8086) #address
client.switch_database("weather")

#sensor details
spi = busio.SPI(board.SCK, MOSI=board.MOSI, MISO=board.MISO)
cs = digitalio.DigitalInOut(board.D5)
sensor = adafruit_bmp280.Adafruit_BMP280_SPI(spi, cs)

#building data
iso = time.ctime()

temp = float(sensor.temperature)
pres = float(sensor.pressure)

temp = round(temp, 2)
pres = round(pres, 3)

json_body = [
{
    "measurement": "bmp280",
    "fields": {
        "exttemp": temp,
        "extpres": pres
    }
}
]

#sending data
client.write_points(json_body)

终于找到解决办法了,跟crontab的功能有关, 当它执行脚本时,它是通过 sudo "user" 来执行的。 因此,pythons 库也必须与 "sudo" 用户一起安装:sudo pip3 install <libs> 而不是像我以前那样简单地 pip3 install <libs>