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] データ ソース名が見つからず、既定のドライバーが指定されていません (0) (SQLDriverConnectW)')
このエラー (および一般的な Python スクリプト) に関して別の質問があります。これをスクリプトとして実行すると、黙って失敗します (スタック トレースを期待していました)。エラーが発生した場所を見つけるには、各行を手動で入力する必要があります。
私は今のところ少し怠け者です(例外処理なし)-例外処理なしのPythonスクリプトのこの通常の動作は、サイレントに失敗しますか?
[編集]
既に pyodbc を使用して別のソース (MS Access) からデータを抽出しているため、mysqldb は使用していません。わかりました、正当な理由ではありません-しかし、私はすでにpyodbcに取り組んでおり、「1回限りの」仕事のために別のライブラリ/モジュール/パッケージ(Pythonで呼び出されたものは何でも)と格闘する必要はありません。Windows 環境のさまざまなデータ ソースから Linux の mySQl にデータを移動したいだけです。Linux に移行したら、大地に戻ります。
それが「スクリプト」全体です。上記のコードを拡張子 .py のファイルに保存し、コマンド ラインで python myscript.py を実行しました。XPマシンでこれを実行しています