如何创建连接到sqlite3数据库的可执行python tkinter文件

如何创建连接到sqlite3数据库的可执行python tkinter文件,python,sqlite,tkinter,pyinstaller,Python,Sqlite,Tkinter,Pyinstaller,我制作了一个简单的CRUD数据库程序,就像一个非常简单的库存系统。通过查询SQLite3数据库,它可以从数据库中读取、更新数据库、删除数据库中的内容等。现在,我想让它成为可执行的,这样我就可以把它分享给用户,让他们试用这个程序 到目前为止,我已使用以下代码尝试pyinstaller: pyinstaller--onefile--adddata“database.db:”inventory.py 它成功地编译了程序。但是,当我执行可执行文件时,终端中出现了一个错误,显示为sqlite3.Opera

我制作了一个简单的CRUD数据库程序,就像一个非常简单的库存系统。通过查询SQLite3数据库,它可以从数据库中读取、更新数据库、删除数据库中的内容等。现在,我想让它成为可执行的,这样我就可以把它分享给用户,让他们试用这个程序

到目前为止,我已使用以下代码尝试pyinstaller:
pyinstaller--onefile--adddata“database.db:”inventory.py

它成功地编译了程序。但是,当我执行可执行文件时,终端中出现了一个错误,显示为
sqlite3.OperationalError:没有这样的表:items\u list
,它会立即关闭程序

下面是程序内部的代码,供我连接到sqlite3数据库:

db = sqlite3.connect('database.db')
cursor = db.cursor()
为了在树视图中显示项目,我使用了:

def update(rows):
    tree.delete(*tree.get_children())
    for i in rows:
        tree.insert('', 'end', value=i)
...
query = 'SELECT ItemName, CardNo, StockCount FROM items_list'
cursor.execute(query)
rows = cursor.fetchall()
update(rows)

有没有一种方法可以将.py文件与.db文件结合起来,生成一个可执行的单一程序?非常感谢您的帮助

我编写了类似的清单类型脚本,所有这些脚本都使用sqlite数据库。撇开所有变量不谈。我使用
pyinstaller.exe--onefile--windowed
作为命令。当使用Windows 10时,它会放入
C:\…\dist
目录中。我使用
.exe
文件中使用的所有导入脚本将数据库复制到与
.exe
文件相同的路径,并相应地访问相应的数据库。也基于其他变量,比如安装相应的程序。(我这样做只是为了确保我不会遇到任何关于alpha测试的问题。)然后,根据代码的时间,相应地更新
.db
文件。(当我遇到类似问题时,这种方法对我很有效)

我编写了类似的清单类型脚本,这些脚本都可以与sqlite数据库一起使用。撇开所有变量不谈。我使用
pyinstaller.exe--onefile--windowed
作为命令。当使用Windows 10时,它会放入
C:\…\dist
目录中。我使用
.exe
文件中使用的所有导入脚本将数据库复制到与
.exe
文件相同的路径,并相应地访问相应的数据库。也基于其他变量,比如安装相应的程序。(我这样做只是为了确保我不会遇到任何关于alpha测试的问题。)然后,根据代码的时间,相应地更新
.db
文件。(当我遇到类似问题时,此方法对我有效)

不确定是否要将数据库嵌入.exe:不会保存任何更改。每次您要运行exe时,它都会以构建数据库时的相同数据库数据开始exe@EricMathieu嗯,如果我想让程序能够连接到sqlite3数据库,我应该怎么做呢?我对sqlite3数据库一无所知,但我可以告诉你,没有任何东西可以阻止你访问未嵌入的数据库和exe@EricMathieu问题是,我很困惑,因为连接没有错误,但是当.exe运行sqlite查询时,它没有正确读取它(sqlite3.OperationalError:没有这样的表:items\u list)。我已尝试通过internet访问,但未找到任何解决方案。不确定是否要将数据库嵌入.exe:不会保存任何更改。每次您要运行exe时,它都会以构建数据库时的相同数据库数据开始exe@EricMathieu嗯,如果我想让程序能够连接到sqlite3数据库,我应该怎么做呢?我对sqlite3数据库一无所知,但我可以告诉你,没有任何东西可以阻止你访问未嵌入的数据库和exe@EricMathieu问题是,我很困惑,因为连接没有错误,但是当.exe运行sqlite查询时,它没有正确读取它(sqlite3.OperationalError:没有这样的表:items\u list)。我试过上网,但没有找到任何解决办法。