Pyinstaller: Как включить файл QML для простого приложения Pyside + QML?
У меня проблемы с генерацией EXE с помощью Pyinstaller. Моя самая большая проблема должна быть "включая файл qml". Я много пробовал, но все равно не получилось. Надеюсь, кто-то может показать мне, как должен быть написан файл спецификации, чтобы включить QML.
В общем, я хочу создать Windows Exe из моего приложения Pyside+QML. Но как?
main.py
#!/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_())
view.qml
import QtQuick 1.0
Rectangle {
width: 200
height: 200
color: "red"
Text {
text: "Hello World"
anchors.centerIn: parent
}
}
1 ответ
Не уверен насчет PySide, но PyInstaller версии 2.1 поддерживает 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, возвращаемого qmake -query QT_INSTALL_QML
,