Python / MySQL在Windows下失败

时间:2009-11-20 17:21:26

标签: python mysql

我正在尝试让Python 2.6在Windows XP下与MySQL Server 5.1进行通信,但我不断收到一个奇怪的错误,“SystemError:NULL对象传递给Py_BuildValue”:

>>> import MySQLdb as mysql
>>> db = mysql.connect(user = "root", passwd="whatever", db="mysql", host="localh
ost")
>>> cu = db.cursor()
>>> cu.execute("show tables")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\dirr\lib\site-packages\MySQLdb\cursors.py", line 173, in execu
te
    self.errorhandler(self, exc, value)
  File "C:\ dirr\lib\site-packages\MySQLdb\connections.py", line 36, in de
faulterrorhandler
    raise errorclass, errorvalue
SystemError: NULL object passed to Py_BuildValue

我认为这可能是一个字符集问题,但我已经尝试将MySQL设置为UTF-8并且没有任何区别。

我猜python-mysql肯定存在问题。有人可以帮忙吗?


更新

好吧,windows下的python-mysql有点像噩梦,特别是Python 2.6似乎。而不是使用pip安装python-mysql,而是使用this installer。修好了。

1 个答案:

答案 0 :(得分:1)

用C编写的MySQLdb部分有问题。根据错误消息,它试图传递NULL,指向对象的指针。它可能是MySQLdb中的一个错误,除非你使用的是一些破坏的版本。你用的是什么版本?尝试下载最新稳定版本的MySQLdb以获得完全正确的python版本并重新安装。尝试安装以前的版本。如果最新版本不起作用,请填写错误报告。

Thisthis报告可能与您的错误相关。根据他们你mysql返回一些错误,触发MySQLdb中的错误。不幸的是,发现这个错误并不容易。