我无法使用pyodbc连接到mySQl数据库。pyodbc和mySQL
这里是我的脚本的一个片段:
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: ('IM002', '[IM002] [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified (0) (SQLDriverConnectW)')
我有一个关于此错误(和Python脚本另一个问题一般来说)。当我将它作为脚本运行时,它会默默地失败(我期待着一个堆栈跟踪)。我必须手动键入每一行以查找错误发生的位置。
我是有点懒,现在(没有异常处理) - 是一个Python脚本没有异常处理这个正常的行为默默地失败?
[编辑]
,因为我已经使用pyodbc从另一个源(MS接入)提取我的数据,我不使用MySQLdb的。好吧,不是一个好的理由 - 但我已经在与pyodbc拼杀了,我真的不喜欢与另一个库/模块/软件包(不管它在Python中被称为“一次性”工作)搏斗。我只是想将我的数据从Windows环境中的各种数据源移到Linux上的mySQl。一旦在Linux上,我会回到terra firma。
这是整个'脚本'在那里。我只是将上面的代码保存到扩展名为.py的文件中,然后在命令行运行python myscript.py。我在我的XP机器上运行此操作
为什么不使用mysqldb驱动程序? – 2010-10-20 20:50:51
“当我作为脚本运行”?你究竟做了什么?请提供一些关于你做了什么的暗示。什么OS?什么壳牌? – 2010-10-20 20:54:54
“我真的不喜欢与另一个库/模块/软件包(无论它在Python中被称为”一次性“工作)搏斗”这违反了Python世界观。看来我们所做的只是下载新的软件包并与他们搏斗。使用包装来达到预期目的非常重要。 'pyodbc'可能无法连接到MySQL。期。 – 2010-10-20 21:14:19