我无法使用 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: ('IM002', '[IM002] [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified (0) (SQLDriverConnectW)')
我对这个错误(以及一般的 Python 脚本)还有另一个问题。当我将其作为脚本运行时,它会静默失败(我期待堆栈跟踪)。我必须手动输入每一行才能找到错误发生的位置。
我现在有点懒惰(没有异常处理) - 没有异常处理的 Python 脚本的这种正常行为是否会静默失败?
[编辑]
我没有使用 mysqldb,因为我已经在使用 pyodbc 从另一个源(MS Access)提取我的数据。好吧,这不是一个很好的理由 - 但我已经在努力解决 pyodbc 问题,而且我真的不想为了“一次性”工作而不得不与另一个库/模块/包(无论它在 Python 中调用什么)搏斗。我只想将我的数据从 Windows 环境中的各种数据源移动到 Linux 上的 mySQl。一旦在 Linux 上,我将回到 terra Firma。
那就是那里的整个“脚本”。我刚刚将上面的代码保存到一个扩展名为 .py 的文件中,然后在命令行运行 python myscript.py。我在我的 XP 机器上运行它