PySyde2 / fbs冻结/无法执行脚本主程序

时间:2019-10-31 12:33:32

标签: python pycharm pyside2 fbs

希望你们做得好!我正在使用PyCharm和虚拟环境开始一个项目。有人可以帮忙吗? 我有这些文件:

main.py,其代码为:

from fbs_runtime.application_context.PySide2 import ApplicationContext
import sys
from package.main_window import MainWindow
if __name__ == '__main__':
    appctxt = ApplicationContext()       # 1. Instantiate ApplicationContext
    window = MainWindow()
    window.resize(250, 150)
    window.show()
    exit_code = appctxt.app.exec_()      # 2. Invoke appctxt.app.exec_()
    sys.exit(exit_code)

我还有另一个文件main_window.py,其中包含以下代码:     从PySide2导入QtWidgets

class MainWindow(QtWidgets.QWidget):
    def __init__(self):
        super().__init__()
        self.setup_ui()

    def setup_ui(self):
        self.create_widgets()
        self.modify_widgets()
        self.create_layouts()
        self.add_widgets_to_layouts()
        self.setup_connections()

    def create_widgets(self):
        self.btn_click = QtWidgets.QPushButton("Click")

    def modify_widgets(self):
        pass

    def create_layouts(self):
        self.main_layout = QtWidgets.QVBoxLayout(self)

    def add_widgets_to_layouts(self):
        self.main_layout.addWidget(self.btn_click)

    def setup_connections(self):
        self.btn_click.clicked.connect(self.bouton_clicked)

    def bouton_clicked(self):
        message_box = QtWidgets.QMessageBox()
        message_box.setWindowTitle("Bravo")
        message_box.setText("Première application réussi")
        message_box.exec_()

最后,我用以下命令创建了一个freeze.sh文件:     源〜/ PycharmProjects / venv / Scripts / activate     cd〜/ PycharmProjects / echaufement /

fbs clean
fbs freeze

我CD了src / main文件夹并使用了usig:sh Frozen.sh 它创建一个包含我的App.exe的目标文件夹 但是打开我的App.exe时出现以下错误:无法执行脚本main 最后,在调试-fbs Frozen --debug-之后,我有了这个-请查看图片 谢谢您的帮助。 enter image description here

1 个答案:

答案 0 :(得分:0)

./Scripts/fbs-script.py第11行是否存在路径问题?

作为一般规则,fbs在python 3.6之外还不能很好地发挥作用。尝试在python 3.6.x venv时再次冻结该应用程序吗?

我已经在此处概述了如何使用python 3.6.x virtualenv构建fbs应用程序:How to compile PyQt5 program that uses python 3.8