我是python的新手,我试图运行以下
from distutils.util import execute
from gi.repository import Gtk
import mysql.connector
class MyWindow(Gtk.Window):
con = mysql.connector.connect(user='root', password='', host='localhost', database='mydatabase')
sql = con.cursor()
test = Gtk.Button(label="test")
save_buy.connect("clicked", self.test_click)
box1.pack_start(test, True, True, 0)
def test_click(self, widget):
self.sql = execute("SHOW TABLES")
print(self.sql.fetchall())
当我点击测试按钮时,我得到了
TypeError: execute() missing 1 required positional argument: 'args'
答案 0 :(得分:3)
错误很清楚。您必须将另一个参数传递给execute
。
请注意,您要从execute
导入distutils.util
。相关文档为here:
execute(func, args[, msg=None, level=1])
调用
distutils.util.execute()
。在记录和获取之后,此方法将使用给定的参数func
调用Python函数args
考虑dry_run
标志。
此外,您传递的是字符串而不是可调用的字符串。您可能会将执行函数与接受SQL语句的mysql
包中的其他函数混淆。例如,光标有execute
方法,因此您可能希望改为sql.execute("SHOW TABLES")
。