执行Python与Crontab /终端的区别

时间:2020-01-12 13:47:30

标签: python cron type-conversion

我尝试在Raspberry上使用crontab执行python脚本。

我从SQL数据库中读取了一些值,并使用它们来选择网页上的符号。

我使用MySQLdb:

def GetData(sql_command):
    cur.execute(sql_command)
    result = cur.fetchall()
    return result

当我使用Thonny执行脚本时,它可以正常工作而没有任何错误。 当我使用Crontab执行脚本时,它不起作用。 因此,我在LXTerminal中尝试了脚本,结果是,当我尝试将云值转换为整数时出现错误invalid literal for int() with base 10: '10L'。数据库中的值介于-16到30之间,并且已经保存为INT。

def cloudtosymbol(cloud):
    cloud = int(cloud)

    if cloud == 1:
        symbol = "001.png"
    elif cloud == 2:    
        symbol = "002.png"

我知道该值后面的L表示Long。 我尝试添加cloud = float(cloud) 在进行int转换之前,出现新错误消息:invalid literal for int() with base 10: '10L'

在代码上方,我有2行:

#!/usr/bin/env python

# -*- coding: cp1252 -*-

执行时,我像在其他脚本中那样在.sh文件中使用sudo python /home/pi/Documents/Codes/Vorhersage.py来执行。

我的问题:

  1. 为什么当我将它们存储为INT时从数据库中读取它们时,它们的值长而不是INT?为什么在-16到30之间的值转换为INT会引起问题?

    < / li>
  2. 怎么可能,当我用Thonny进行测试时,所有代码都能正常工作,但是在LXTerminal中调用时失败,并显示错误。

感谢您的帮助

0 个答案:

没有答案