首页 > 编程语言 >python脚本crontab执行坑

python脚本crontab执行坑

时间:2022-10-14 18:56:20浏览次数:56  
标签:脚本 xxx python py crontab Python 报错 configparser

大概会出现这样的情况。

Python xxx.py 跑的好好的。然后用crontab去执行Python就会发现报错。比如我遇到的这种报错是

主要是有诸多的报错,最开始没有注意到这个问题。
File "/usr/local/lib/python3.7/configparser.py", line 958, in getitem
raise KeyError(key)

分析。很明显加载不到该py文件。在思考,我 Python xxx.py 有可能是跟我Linux系统有几个不同版本的Python 有关。比如该Python版本没有对该函数做兼容等。

于是尝试1

在crontab 里加上 /usr/local/bin/python3.10 xxx.py ,也还是不行。

尝试2 在 Python前加 source $HOME/.bash_profile; 也不行

最终在下国际象棋的时候。在思考。路径的问题。然后就想到了项目中有这样的

import configparser

cf = configparser.ConfigParser()
cf.read('../conf/config.ini')

这里如果采用相对路径./config.ini亦会导致无法正常读取。

所以如果用到crontab的话。项目内的路径也得写个绝对路径。感觉这挺不友好的。应该还有其他的解决办法。只是。。。我还没想到

标签:脚本,xxx,python,py,crontab,Python,报错,configparser
From: https://www.cnblogs.com/zrds/p/16792648.html

相关文章

  • python常见内置函数
    今日内容概要重要内置函数常见内置函数可迭代对象迭代器对象for循环内部原理异常处理今日内容详细重要内置函数zipl1=[11,22,33,44,55]l2=['jaso......
  • python周测
    1.编写⽤户识别程序要求:可循环根据⽤户输⼊的姓名不同输出不同的身份信息Author:JasonJi添加程序结束功能(如⽤户输⼊字⺟q直接结束识别程序)jason:扫地僧tony:洗碗......
  • python数据类型之列表(二)
    列表基础详见:https://www.cnblogs.com/gaofeng-01/p/16788576.html列表相关题目 1、列表去重#①利用集合没有重复元素的特性,通过set()方法lst1=['a','dc','ab......
  • python多线程获取线程执行结果
     In [1]:fromthreadingimportThreaddeffun(t):"""//执行函数体//t:时间"""v=int(9.8*(t**2))returnvclassMyT......
  • 如何编写 Pipeline 脚本
    前言Pipeline编写较为麻烦,为此,DataKit中内置了简单的调试工具,用以辅助大家来编写Pipeline脚本。调试grok和pipeline指定pipeline脚本名称,输入一段文本即可判断......
  • python迭代器
    目录可迭代对象迭代器对象可迭代对象和迭代器对象for循环的本质异常捕获如何看pycharm报错可迭代对象1.定义 对象内置有__iter__方法的都称为可迭代对象 """ 1.内置方......
  • Python基础15
    今日内容概要重要内置函数常见内置函数可迭代对象迭代器对象for循环的本质异常今日内容详细重要内置函数1.zip() zip函数是可以接收多个可迭代对象,然后把每......
  • python学习记录——与C#的差异
    1.可存在同名对象classA:def__init__(self):print('thisisclass.')defA():print('thisismethod.')a=A()#thisismethod.由于python......
  • python学习记录——类
    一、创建类classPeople:passp=People()二、构造函数__init__()方法是一种特殊的方法,被称为类的构造函数或初始化方法,当创建了这个类的实例时就会调用该方法。......
  • python--第十五课
    昨日内容回顾作业讲解1.装饰器2.递归函数算法简介及二分法算法:解决问题的方法二分法:每次取一半defget_middle(l1,target_num):iflen(l1)==0:......