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の構造

f:id:akashisn:20181027124844p:plain

chunithm.dbの中身

f:id:akashisn:20181027124909p:plain

実行してみよう!

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'・・・なんだ?

Pythonを嫌いになりかけてたとき神リプが送られてきた

神様🙏🙏🙏

つまりファイル名が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_様ほんとにありがとうございました!