sqlite数据库的安装路径

时间:2016-11-25 13:22:34

标签: python

我正在尝试使用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的文件夹中运行它。

如何将其安装在路径中?

1 个答案:

答案 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__从您运行命令的位置存储文件的相对路径。
  • os.path.dirname从指定路径中删除文件名。
  • os.path.join将连接计算出的路径和文件名。