django踩坑(四):终端输入脚本可正常执行,而加入crontab中无任何输出

使用crontab执行python脚本时,有时会遇到脚本无法执行的问题。这是因为crontab在执行任务时使用的环境变量与我们在终端中使用的环境变量不同。具体来说,crontab使用的环境变量是非交互式(non-interactive)环境变量,而终端则使用交互式(interactive)环境变量。这导致了某些环境变量在crontab中不可用,从而影响了python脚本的执行。

如下图:

这段代码生成的执行命令是:

python /data/projects/xinjiang_titan/db_building/tests.py

通过在终端输入可以正常执行该脚本,且正常输出结果。然而加入crontab中每分钟执行一次时,却发现没有任何输出。

解决方案:

使用绝对路径来执行python脚本。我们需要找到python执行文件的路径:

然后将python用绝对路径来执行:

/root/anaconda3/envs/bigdata/bin/python /data/projects/xinjiang_titan/db_building/tests.py

再跑脚本就正常输出结果了。

相关推荐
LuiChun13 小时前
Django 模板分割及多语言支持案例【需求文档】-->【实现方案】
数据库·django·sqlite
凡人的AI工具箱13 小时前
每天40分玩转Django:Django管理界面
开发语言·数据库·后端·python·django
中科院提名者13 小时前
Django连接mysql数据库报错ModuleNotFoundError: No module named ‘MySQLdb‘
数据库·mysql·django
碧水澜庭13 小时前
django中cookie与session的使用
python·django
鬼义II虎神13 小时前
将Minio设置为Django的默认Storage(django-storages)
python·django·minio·django-storages
大霸王龙15 小时前
在 Django 中使用 SMTP 发送邮件是一个常见的需求
数据库·django·sqlite
凡人的AI工具箱1 天前
每天40分玩转Django:Django测试
数据库·人工智能·后端·python·django·sqlite
qyq11 天前
Django框架与ORM框架
后端·python·django
LuiChun1 天前
Django 中的 reverse 【反向/逆转/扭转/逆向】使用详解以及使用案例
数据库·django·sqlite
江上挽风&sty1 天前
【Django篇】--创建第一个Django项目
后端·python·django