我无法将数据库包含到.exe文件中

时间:2019-04-26 07:54:00

标签: python database tkinter sqlite exe

我想将我的.py文件转换成.exe文件。为此,我使用的是auto-py-to-exe,但是当我将其转换时,不包括我的数据库。我可以启动我的应用程序,但是当我需要从数据库中获取数据的窗口中时,它不会显示。

pyinstaller -y -w --add-data "C:/Users/..../..../..../..../Base_SAV.db";"." 
...
"C:/..../..../..../..../..../MyCatSAV_Final.py"

只要不需要访问数据库,我的应用程序就可以正常工作

2 个答案:

答案 0 :(得分:1)

您不必包括数据库。 sqlite3数据库是在脚本当前目录中创建的常规文件。 sqlite3数据库没有“标准位置”。

假设您这样创建数据库:

conn = sqlite3.connect("Base_SAV.db")
cur = conn.cursor()
cur.execute("CREATE TABLE IF NOT EXISTS(--------------)")
con.commit()
con.close()

,然后将其编译为executable,则无需在工作目录中包含创建的database。运行可执行文件后,数据库将立即在您创建的文件夹中创建是否有exe个文件。

因此将pyinstaller转换为可执行文件的命令应该是:

pyinstaller --windowed --onfile    MyCatSAV_Final.py

这将完美工作。

答案 1 :(得分:-1)

我创建了一个项目,在这个项目中我创建了一个单独的 database.py 文件,并像这样将我的 database.py 引用到 main.py

**con = sqlite3.connect(database=r'ims.db ')
cur = con.cursor()**

但在创建 main.exe 后,我的数据库文件不起作用