cmd执行python脚本 回车后无法生效_关于crontab运行python脚本不生效,但是手动执行却正常的问题...

本文讲述了在Linux环境中,由于crontab默认使用的是/usr/bin/python(可能是Python2.7),导致无法执行Python3编写的Main.py程序。通过修改shell脚本,指定anaconda3的Python3.6.3绝对路径,解决了兼容性问题,确保了crontab定时任务的正确执行。总结来说,在使用crontab时,务必为所有程序和环境变量指定绝对路径。
摘要由CSDN通过智能技术生成

服务器上装了anaconda3(python3.6.3)以及linux原装的python2.7以及其他的python环境

我直接在命令行输入python -V,显示如下内容:

我现在有一个Main.py的 python文件(python3写的),打算用linux的crontab定时作业,实现每小时的整点执行一次这个程序。

故我写了一个test_main.sh的脚本,内容如下:(假设Main.py,test_main.sh都在 /home/zhangsan/aaa/ 目录下)

#!/usr/bin/bash

cd  /home/zhangsan/aaa

python Main.py

然后crontab -e 来编辑crontab定时作业

0 * * * *  /home/zhangsan/aaa/test_main.sh

但是到了整点之后发现python文件并没有运行成功,然而直接/home/zhangsan/aaa/test_main.sh却可以正常运行。

这个问题困惑了我很久,最终经过查资料得知,运行crontab定时作业里边的东西,都要写绝对路径,python环境最好也写绝对路径

所以把test_main.sh 改成如下内容就可以了。

#!/usr/bin/bash

cd  /home/zhangsan/aaa

/root/anaconda3/bin/python  Main.py

原因分析:我认为,这也许时因为crontab运行python的时候,如果不写python的绝对路径,就默认是/usr/bin/python,而/usr/bin/python是python2.7,与我写的pyton3的代码是不兼容的,所以不会正常运行。

把python环境改为绝对路径之后,python环境就指定为anaconda的python3.6.3了,所以就可以正常运行了。

总之一句话,在使用crontab时,所有的路径都写绝对路径,包括程序的运行环境!!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值