我有一个使用sqlite3的PyQt4应用程序。我目前有两个单独的文件:.py文件和.db文件。最初我拿了.py文件并试图创建一个可执行文件,只是使用它可能会以某种方式链接但是当我运行.exe时它会在它获取数据库相关代码时中断。如何让pyinstaller包含数据库呢?
答案 0 :(得分:1)
您需要使用specfile。看看documentation。
pyinstaller会自动创建这些文件。你只需要编辑它。看看文档中的示例。要添加README文件,您只需要将一个元组(源,目标)添加到'数据':
a = Analysis(...
datas=[ ('src/README.txt', '.') ],
...
)
答案 1 :(得分:0)
This post帮助了我。基本上,您可以使用如下参数运行pyinstaller命令(假设您的脚本为script.py
,而数据库为database.db
):
pyinstaller -w --add-data "database.db;." script.py
这将首先创建一个.spec
文件,该文件将database.db
列为要包含在构建中的文件。创建的.spec
文件将用于运行构建。
如here所述,-w选项可防止在运行将创建的.exe
文件时显示控制台。
----或者----
根据the docs,您可以首先仅创建.spec
文件,然后对其进行修改以列出应包括的数据文件。 .spec
的{{1}}文件是使用以下方式创建的:
script.py
然后,在创建的pyi-makespec script.py
文件中,您可以修改.spec
字段:
datas
这假定a = Analysis(...
datas=[ ('database.db', '.') ],
...
)
在根文件夹中。如果没有,则需要包括路径。 database.db
指定您希望数据库文件在构建中的位置(在这种情况下,'.'
是根文件夹。要包含更多文件,可以向其中添加更多元组'.'
('...', '...')
列表。