我无法使用pyodbc连接到mySQl db。
下面是我的脚本片段:
import pyodbc
import csv
cnxn = pyodbc.connect("DRIVER={MySQL ODBC 3.51 Driver}; SERVER=localhost;DATABASE=mydb; UID=root; PASSWORD=thatwouldbetelling;")
crsr = cnxn.cursor()
with open('C:\\skunkworks\\archive\\data\\myfile.csv','r') as myfile:
rows = csv.reader(myfile, delimiter=',', quotechar='"')
for row in rows:
insert_str = 'INSERT into raw_data VALUES(something, something)'
print insert_str
#crsr.execute(insert_str)
cnxn.commit()
myfile.close()我在pyodbc.connect()行中得到了这个错误:
pyodbc.Error:(‘no 002’,‘未找到IM002ODBC驱动程序管理器数据源名称,也没有指定默认驱动程序(0) (SQLDriverConnectW)')
关于这个错误(和一般的Python脚本),我还有另一个问题。当我以脚本的形式运行它时,它会悄悄地失败(我希望看到堆栈跟踪)。我必须手动键入每一行以查找错误发生的地方。
我现在有点懒(没有异常处理)--这是Python脚本的正常行为吗?
编辑
我没有使用mysqldb,因为我已经使用pyodbc从另一个源(MS )提取数据。好吧,这不是一个很好的理由--但我已经在和pyodbc做斗争了,我并不想为了“一次性”的工作而与另一个库/模块/包(不管它在Python中叫什么)搏斗。我只想将我的数据从Windows环境中的各种数据源移到Linux上的mySQl。一旦在Linux上,我将回到上。
整个剧本就在那儿。我刚刚将上面的代码保存到一个具有.py扩展名的文件中,并在命令行运行pythonmyscript.py。我正在我的XP机器上运行这个
发布于 2015-01-16 20:16:25
我也犯了同样的错误,所以我检查了所有用于连接的版本。这就是我发现的
对于Python2.7 32位:- pyodbc必须是32位- DB驱动程序必须是32位。(Microsoft Access也应该是32位)
对于那些使用64位版本的人。你应该检查一下,所有的东西都是64位。
在我的示例中,我试图连接到Oracle DB和Microsoft Access DB,因此必须使以下组件与体系结构版本匹配:
发布于 2016-11-02 05:44:06
这是你的司机名字对吗?
您可以在 Windows ->控制面板->系统和安全->管理工具-> ODBC数据源->驱动程序选项卡中检查您的驱动程序名,然后将河名复制到第一个参数
喜欢
cnxn = pyodbc.connect("DRIVER={MySQL ODBC 5.3 ANSI Driver}; SERVER=localhost;DATABASE=books; UID=root; PASSWORD=password;")我的问题解决了
或者您可能不会安装驱动程序,而且步骤很简单。
发布于 2010-10-20 21:09:59
MySQLdb (或oursql)和pyodbc都有相同的接口(2),只是如果使用前者,就不需要处理ODBC的问题。我强烈建议您考虑使用MySQLdb (或oursql)代替。
https://stackoverflow.com/questions/3982174
复制相似问题