Python:不使用MySQLdb modu访问MySQL数据库

2024-05-16 13:59:27 发布

您现在位置:Python中文网/ 问答频道 /正文

有没有其他方法可以连接到MySQL数据库,而MySQL数据库包含在macos10.5.x捆绑的Python(2.5.1)版本中?不幸的是,我无法将MySQLdb模块添加到我正在使用的客户机上……我需要使用Leopard附带的Python的库存版本。在


Tags: 模块方法版本数据库客户机库存mysql附带
3条回答

为什么不安装MySQLdb的用户(非系统)副本? 这些是您需要安装的the files

/usr/lib/pyshared/python2.6
/usr/lib/pyshared/python2.6/_mysql.so
/usr/share/pyshared
/usr/share/pyshared/MySQLdb
/usr/share/pyshared/MySQLdb/constants
/usr/share/pyshared/MySQLdb/constants/CLIENT.py
/usr/share/pyshared/MySQLdb/constants/REFRESH.py
/usr/share/pyshared/MySQLdb/constants/FLAG.py
/usr/share/pyshared/MySQLdb/constants/FIELD_TYPE.py
/usr/share/pyshared/MySQLdb/constants/__init__.py
/usr/share/pyshared/MySQLdb/constants/ER.py
/usr/share/pyshared/MySQLdb/constants/CR.py
/usr/share/pyshared/MySQLdb/__init__.py
/usr/share/pyshared/MySQLdb/cursors.py
/usr/share/pyshared/MySQLdb/times.py
/usr/share/pyshared/MySQLdb/connections.py
/usr/share/pyshared/MySQLdb/converters.py
/usr/share/pyshared/MySQLdb/release.py
/usr/share/pyshared/_mysql_exceptions.py

即使不能安装到/usr/lib和/usr/share/pyshared,也可以安装到其他任何地方,只要它在客户机PYTHONPATH中列出的目录中。在

如果安装MySQLdb的用户副本出于某种原因而不是一个选项,那么您可以执行以下操作,但要注意:与mysqld交互是一种可怕的方式,原因如下:

打开终端并键入类似

^{pr2}$

如果这是可行的,那么您就可以使用python的subprocess模块来调用mysql命令(如上面的命令)。在

例如

import subprocess
user='xxxxxx'
password='xxxxxxxx'
database='xxxxxxxx'
cmd=['mysql', '-u', user, '-p%s'%password, '-D', database, '-Bse', "select * from table;"]
proc=subprocess.Popen(cmd,stdout=subprocess.PIPE)
retval=proc.communicate()[0]
print(retval)

如上所述,你这样做会损失很多。也就是说

  1. retval只是一个巨大的字符串。您将丢失有关字段和记录开始和结束位置的所有信息,
  2. 失去了到Python数据类型的自动转换,
  3. 您将丢失信息性错误异常。

如果问题是无法使用msqldb模块,就像很多人提到的那样,那么简单的方法是 1安装mysql数据库 2安装pyodbc模块 三。加载并配置odbcmysql驱动程序 4使用pyodbc执行sql操作,pyodbc非常成熟且功能齐全。在

希望这有帮助

或者你可以去看看MySQL Connector/Python。它仍在开发中,但应该可以与Python2.5一起使用。不需要MySQL库或其他软件。在

相关问题 更多 >