【问题标题】:Python3 script runs fine in console but won't work while executed by crontabPython3 脚本在控制台中运行良好,但在由 crontab 执行时无法运行
【发布时间】:2021-05-30 11:43:17
【问题描述】:

我正在尝试让以下脚本在 crontab 上成功运行,但它不起作用。

*/3 * * * * /usr/bin/python3 /var/www/secret_directory/main.py > /home/USER/grabber.log

我尝试在 SSH 中运行该命令,结果成功:

/usr/bin/python3 /var/www/secret_directory/main.py

如果有效,输出应如下所示:

100%|██████████████████████████████████████████████████████████████████████████████| 61/61 [00:16<00:00,  3.62it/s]
100%|██████████████████████████████████████████████████████████████████████████| 1696/1696 [01:09<00:00, 24.30it/s]

但在grabber.log文件中看起来像这样:

  0%|          | 0/1 [00:00<?, ?it/s]
100%|██████████| 1/1 [00:00<00:00,  3.60it/s]
100%|██████████| 1/1 [00:00<00:00,  3.59it/s]

我不知道这是否重要,但与此软件有关:https://github.com/RedBlaze42/Mars2020-images-downloader

感谢您的帮助!

【问题讨论】:

  • 这个问题看起来纯粹是审美问题。如果您不希望脚本尝试格式化进度条,请从 Python 脚本中取出这些部分。它们是为交互使用而设计的,因此它们在cron 作业中显然是无用的,如果您不在支持脚本使用的格式代码的终端中查看最终结果,则无法正确呈现。跨度>
  • 第一个进度条是检查来自 NASA API 的图像 URL,第二个是这些图像的实际下载。通过 cron 运行时,图像不会被下载

标签: python linux command-line cron


【解决方案1】:

只需拨打tqdm的电话即可;用whatever 替换任何看起来像tqdm(whatever) 的东西。

https://tqdm.github.io/ 是一个用于显示“友好”进度表的库,但这显然只对交互式程序有用,并且当您想在没有终端的地方运行代码时会出现问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-05-01
    • 1970-01-01
    • 2014-01-02
    • 2020-09-09
    • 1970-01-01
    • 2021-04-24
    相关资源
    最近更新 更多