python TypeError:execute()缺少1个必需的位置参数:' args'

时间:2016-01-23 07:10:37

标签: python

我是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'

1 个答案:

答案 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")