Python3でSQLiteを扱おうとしたときにハマったこと
python3からSQLliteを扱おうとした時にハマったのでメモ
環境
- Python 3.5.2
- SQLite version 3.11.0
- Ubuntu
SQLite3のインストール
$ sudo apt install sqlite3 libsqlite3-dev
動作確認
ファイル構成
root@ubuntu:~/CHUNITHM$ tree . |-- chunithm.db `-- sqlite3.py 0 directories, 2 files
[sqlite3.py]
#!/usr/bin/env python3 import sqlite3 con = sqlite3.connect("/root/CHUNITHM/chunithm.db") c = con.cursor() c.execute("select * from Music") r = c.fetchall() print(r[0])
chunithm.db
の構造
chunithm.db
の中身
実行してみよう!
root@ubuntu:~/CHUNITHM$ python3 sqlite3.py Traceback (most recent call last): File "sqlite3.py", line 3, in module import sqlite3 File "/root/CHUNITHM/sqlite3.py", line 4, in module con = sqlite3.connect("/root/CHUNITHM/chunithm.db") AttributeError: module 'sqlite3' has no attribute 'connect'
AttributeError: module 'sqlite3' has no attribute 'connect'
・・・なんだ?
コマンドラインでは行けるのにファイルにして実行するとエラー出るの何なの💢💢 pic.twitter.com/k63obM568M
— Akashi_SN@BiPhone (@Akashi_SN) 2016年12月2日
Python謎
— Akashi_SN@BiPhone (@Akashi_SN) 2016年12月2日
Python嫌い
— Akashi_SN@BiPhone (@Akashi_SN) 2016年12月2日
Pythonを嫌いになりかけてたとき神リプが送られてきた
@Akashi_SN スクリプトファイル名がsqlite3になっていませんか?importで標準のモジュールではなくスクリプトファイルをimportしているとこうなるケースがあります。
— Noriyuki (@eiryplus) 2016年12月2日
神様🙏🙏🙏
つまりファイル名がsqlite3.py
だったのがまずかったよう
自分のファイルをImportしにいってたからエラーが発生してたよう
ファイル名を別に変えて
root@ubuntu:~/CHUNITHM$ tree . |-- chunithm.db `-- chunithm.py 0 directories, 2 files root@ubuntu:~/CHUNITHM$ python3 chunithm.py (3, 'B.B.K.K.B.K.K.', 'img/d739ba44da6798a0.jpg', None, 11.8)
できた!!!
ほんとしょうもないミスでお恥ずかしいばかりです・・・
@eiryplus様@rikibon_様ほんとにありがとうございました!