3

我无法使用 Pyinstaller 生成 exe。我最大的问题应该是“包括 qml 文件”。我尝试了很多,但仍然失败。希望有人能告诉我应该如何编写规范文件以包含 QML。

一般来说,我想要的是从我的 Pyside+QML 应用程序创建一个 Windows exe。但是怎么做?

主文件

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import sys
from PySide.QtCore import *
from PySide.QtGui import *
from PySide.QtDeclarative import QDeclarativeView

# Create Qt application and the QDeclarative view
app = QApplication(sys.argv)
view = QDeclarativeView()
# Create an URL to the QML file
url = QUrl('view.qml')
# Set the QML file and show
view.setSource(url)
view.setResizeMode(QDeclarativeView.SizeRootObjectToView)
view.show()
# Enter Qt main loop
sys.exit(app.exec_())

视图.qml

import QtQuick 1.0

Rectangle {
    width: 200
    height: 200
    color: "red"

    Text {
        text: "Hello World"
        anchors.centerIn: parent
    }
}
4

1 回答 1

4

不确定 PySide,但从 2.1 开始的 PyInstaller 支持 PyQt5。我假设一般程序是相似的。

对于 PyQt5,将 qml 文件放入资源文件中,然后使用 pyrcc5 (pyside-rcc) 进行编译。然后导入生成的 python 模块,PyInstaller 会将其视为任何其他模块。

也可以直接包含 qml 文件。通过做这样的事情:

extrafiles = [('myfile.qml', os.path.join('path', 'to', 'myfile.qml'), 'DATA')]

...

coll = COLLECT( exe,
               a.binaries + extralibs,
               a.zipfiles,
               a.datas + extrafiles,
               ...

您可能还需要从 .qml 返回的 qml 目录中打包 qml 库qmake -query QT_INSTALL_QML

于 2013-10-04T02:36:56.927 回答