我无法使用 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 驱动程序管理器] 数据
未找到源名称且无默认值
指定驱动程序 (0)
(SQLDriverConnectW)')
我还有关于此错误(以及一般的 Python 脚本)的另一个问题。当我将其作为脚本运行时,它会默默地失败(我期待堆栈跟踪)。我必须手动输入每一行才能找到错误发生的位置。
我现在有点懒(没有异常处理)——这是没有异常处理的 Python 脚本的正常行为吗?
[Edit]
我没有使用 mysqldb,因为我已经在使用 pyodbc 从另一个源(MS Access)提取数据。好吧,这不是一个很好的理由 - 但我已经在努力解决 pyodbc 问题了,而且我真的不喜欢为了“一次性”工作而与另一个库/模块/包(无论它在 Python 中被称为什么)进行斗争。我只想将Windows环境中的各种数据源的数据移动到Linux上的mySQl。一旦使用了 Linux,我就会回到陆地上。
这就是整个“脚本”。我刚刚将上面的代码保存到扩展名为 .py 的文件中,然后在命令行运行 python myscript.py 。我在我的 XP 机器上运行这个