【问题标题】:execute python script with cron job使用 cron 作业执行 python 脚本
【发布时间】:2018-10-28 00:54:03
【问题描述】:

我正在尝试每分钟执行一个 cron 作业的 python 脚本。我可以使用终端执行命令。

我的脚本可以通过以下命令执行:

 python /home/pi/Desktop/sensor_testing/dht11.py

在 sudo crontab -e 我输入:

***** python /home/pi/Desktop/sensor_testing/dht11.py

任何建议为什么这不起作用?

【问题讨论】:

  • 使用绝对路径代替python/usr/bin/python/bin/env python
  • 我试过了 * * * * * /usr/bin/python home/pi/Desktop/sensor_testing/dht11.py 但还是不行
  • 那我很糟糕,虽然您在“/home/...”的开头缺少一个“/”,但我想这是您的复制/粘贴中的错字。无论如何,在寻找答案时,我找到了this questionthis answer。希望你能在那里找到一些东西。 =)

标签: python cron execute


【解决方案1】:

看看here,这是一个很好的解释,关于在你的 python 脚本中添加一个 shebang。它将允许您轻松运行脚本而无需显式调用 python,您唯一需要做的就是为 shebang 和您的集合添加正确的 python 路径。

tl;来自链接的博士:

要运行 python 3 脚本,请将其添加到脚本的顶部:

#!/usr/bin/env python3

或者这个对于 python 2.7

#!/usr/bin/env python2

【讨论】:

    【解决方案2】:

    时间字段是空格分隔的,即

    * * * * * python /home/pi/Desktop/sensor_testing/dht11.py
    

    【讨论】:

    • 谢谢,我试过了,但它不会让我保存更改,它说 cron 文件中有错误...
    • 那这里肯定有另一个错误。
    • @pygo OP 在命令行上成功使用它 - 我不打算在这里提供更多错误。
    • 我设法将字段分开,但它仍然无法使用 python 和没有它
    【解决方案3】:

    应该很简单:

    首先将绝对 python 路径放在脚本的顶部:

    #!/usr/local/bin/python   # Just assuming this path
    

    使文件可执行:

    chmod +x /home/pi/Desktop/sensor_testing/dht11.py
    

    然后放入cron..

    ***** /home/pi/Desktop/sensor_testing/dht11.py
    

    【讨论】:

    • 该文件是可执行的,我在脚本中添加了 python 路径,但它仍然没有做任何事情......
    • @Miniex,通过命令行运行时是否运行?顺便说一句,脚本问题没有添加到 cron。
    猜你喜欢
    • 1970-01-01
    • 2021-01-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-10
    • 1970-01-01
    相关资源
    最近更新 更多