微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Discord bot 脚本在 vps 中无法正常工作?

如何解决Discord bot 脚本在 vps 中无法正常工作?

我已将我的 discord bot python 脚本上传到我的 vps,但它无法正常工作。 我收到错误

File "/root/cogs/zaidimas.py",line 426,in atnaujinti
cursor.execute(f"UPDATE misijos SET laikasmisija = {laikutis-3} WHERE userid                        ={zaidikas}")                                                                                     
TypeError: unsupported operand type(s) for -: 'str' and 'int'

而在 Windows 中我没有收到此错误,这是导致错误代码

@tasks.loop(seconds=3.0)
async def atnaujinti(self):
    db=sqlite3.connect('misija.sqlite')
    cursor = db.cursor()
    cursor.execute(f"SELECT userid FROM misijos")
    for zaidejas in cursor.fetchall():
        zaidikas=zaidejas[0]
        cursor.execute(f"SELECT laikasmisija FROM misijos WHERE userid={zaidikas}")
        laikas=cursor.fetchone()
        laikutis=laikas[0]
        db.commit()
        cursor.execute(f"UPDATE misijos SET laikasmisija = {laikutis-3} WHERE userid={zaidikas}")
    db.commit()

在我将 laikutis 和 zaidimas 放入 int( ) 后,错误消失了,但其他每一行代码也需要像这样更改,我从未在 Windows 中遇到过这些错误代码运行良好。

vps 是 ubuntu 20.04,python 3.9.1,discord py 1.6 我用'python3.9 taisykliuBot.py'运行代码(taisykliuBot.py是主脚本) 这里可能有什么问题,或者我需要去更改脚本中的所有值?

编辑:我的观点是相同的代码在 Windows 中可以完美编译,但在 ubuntu 上它给了我错误。没有更简单的方法吗?

解决方法

将其转换为 Łukasz 所说的 int。

cursor.execute(f"UPDATE misijos SET laikasmisija = {int(laikutis)-3} WHERE userid={zaidikas}")

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。