【问题标题】:python starts ok from terminal but not as cron at bootpython 从终端启动正常,但在启动时不是 cron
【发布时间】:2014-09-13 05:22:29
【问题描述】:

我有一个 python 脚本。我可以从终端(ubuntu)很好地启动它,但是当我将它设置为 cron 作业时,它会启动,但功能不一样。我认为路径有问题。有没有办法让我设置一个脚本来启动,就好像我从终端启动它一样?我已经尝试了各种方法来解决这个问题以及大量的谷歌搜索。

不确定这些详细信息是否相关...但是此脚本在其自己的目录中搜索图像,然后将其转储到字典类型变量中。我使用了 os.path。它在终端上可以正常工作,但是当我将其设置为启动时它永远不会工作。

【问题讨论】:

  • 你可以打印当前的 os.path,看看是不是这个问题,还是别的什么。我的 cron 调用通常以 /usr/bin/python
  • 我想我可能会使用 os.path 创建一个更基本的脚本,它只是在它自己的目录中创建所有文件的日志并查看它在启动时的作用。

标签: python ubuntu cron


【解决方案1】:

我通常通过确保我对当前路径非常明确来避免此类问题

import os
THIS_DIRECTORY      = os.path.dirname(__file__)

这种方式保证 THIS_DIRECTORY 是 python 脚本所在的目录,而不是运行它的目录,这是 os.curdir 将报告的目录。

【讨论】:

    【解决方案2】:

    问题是 os.path.isfile(name) 为了解决这个问题,我现在有了这条笨拙的线路,叹息。

    for i in range(len([name for name in os.listdir('/home/dude/Pictures/Wall/') if os.path.isfile('/home/dude/Pictures/Wall/'+name)])):
    

    在这里找到我的答案...Why do os.path.isfile return False?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-12-01
      • 2019-11-16
      • 2021-01-08
      • 1970-01-01
      • 2014-03-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多