我正在尝试使用python访问数据库。 src文件夹是:
ptbl/
├── dialogue.py
├── elem_H.py
├── elems.db
├── __init__.py
├── __main__.py
├── main.py
├── menubar.ui
└── menu.py
elem_H.py
访问elems.db
数据库:
sqlfile = "elems.db"
conn = sqlite3.connect(sqlfile)
当然,当我从终端运行它时,在src目录(ptbl)中,一切正常。
但是,当我在src
目录之外时,它给出错误:
sqlite3.OperationalError: no such table: Overview
同样,如果我使用autotools
安装它。
要使elems.db工作,我必须从存在elems.db的文件夹中运行它。
如何将其安装在路径中?
答案 0 :(得分:0)
将python和SQLite文件混合在一个目录中根本不是一个好的实践。您应该修复它并从库目录中提取elems.db
。
此外,正如Lutz Horn在评论中所说,你应该让它可配置,而不是相信你的数据库文件总是位于完全相同的位置。
但无论如何,要在不更新这两点的情况下解决问题,您必须处理elem_H.py
位置。您知道elems.db
就在它旁边,所以您可以这样做:
import os.path
sqlfile = os.path.join(os.path.dirname(__file__), "elems.db")
__file__
从您运行命令的位置存储文件的相对路径。