pyqt5打包附带存储数据库,免安装
时间: 2024-01-25 07:41:46 浏览: 133
数据库配置-pyqt5 qlistview列表显示的实现示例
要将PyQt5应用程序打包并附带数据库,可以使用PyInstaller或cx_Freeze等打包工具。在打包时,需要将数据库文件复制到打包后的文件夹中,并在应用程序中指定相应的数据库路径。
以下是一个示例程序,将使用SQLite数据库,并将其打包到一个可执行文件中:
```python
import sys
from PyQt5.QtCore import Qt
from PyQt5.QtSql import QSqlDatabase, QSqlQuery
from PyQt5.QtWidgets import QApplication, QLabel, QVBoxLayout, QWidget
class Example(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
label = QLabel()
layout = QVBoxLayout()
layout.addWidget(label)
self.setLayout(layout)
db = QSqlDatabase.addDatabase('QSQLITE')
db.setDatabaseName('example.db')
if not db.open():
label.setText('Failed to connect to database.')
return
query = QSqlQuery()
query.exec_('CREATE TABLE IF NOT EXISTS people (name TEXT, age INTEGER)')
query.exec_("INSERT INTO people (name, age) VALUES ('John Doe', 30)")
query.exec_('SELECT * FROM people')
while query.next():
name = query.value(0)
age = query.value(1)
label.setText(f'{name} is {age} years old.')
db.close()
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Example()
ex.show()
sys.exit(app.exec_())
```
在此示例中,我们将使用SQLite数据库,并将其命名为`example.db`。在`initUI`函数中,我们首先尝试连接到数据库。如果连接失败,则在标签中显示错误消息。如果连接成功,则创建一个名为`people`的表格,并将名为“John Doe”的人员添加到表格中。
最后,我们执行一个查询,将结果显示在标签中。在此示例中,我们只选择了一个人员,但您可以根据需要执行更复杂的查询。
要将此应用程序打包到可执行文件中,可以使用以下命令(假设您已经安装了PyInstaller):
```
pyinstaller --onefile example.py
```
此命令将创建一个名为`example.exe`的可执行文件,您可以将其部署到其他计算机而无需安装PyQt5或SQLite。请注意,您需要将`example.db`文件放在与`example.exe`相同的文件夹中,以便应用程序可以找到它。
阅读全文