Pyinstaller win32 qt应用无法正常运行

时间:2018-07-17 10:39:35

标签: python windows python-3.x pyqt5 pyinstaller

我有2个具有 win32 win64 的虚拟机。我使用PyQt5构建程序,并使用以下命令将其与PyInstaller(3.3.1)打包:

pyinstaller updater.py --noconsole --onefile -i icons/icon.ico

当我在 win64 计算机上执行此操作时,它工作正常。程序工作。但是,当我在 win32 计算机上执行相同操作时,我生成的.exe文件开始需要管理员权限,甚至在确认应用程序崩溃后也是如此。我检查了以下问题:Why does my pyinstaller created executable require admin privileges?

并重命名应用,但仍然崩溃。是什么原因造成的?为什么在win32防御程序上阻止我的应用程序,或者原因可能不在防御程序中。

class MainWindow(QtWidgets.QMainWindow):

    def __init__(self):
        super(MainWindow, self).__init__(flags=QtCore.Qt.Dialog)
        self.progress_bar = QtWidgets.QProgressBar()
        self.progress_label = QtWidgets.QLabel()
        central_widget = QtWidgets.QWidget(flags=QtCore.Qt.Widget)
        central_layout = QtWidgets.QVBoxLayout()
        central_layout.addWidget(self.progress_bar)
        central_layout.addWidget(self.progress_label, alignment=QtCore.Qt.AlignLeft)
        central_widget.setLayout(central_layout)
        self.setCentralWidget(central_widget)
        self.progress_label.setStyleSheet('color: grey')


def main():
    application = QtWidgets.QApplication(sys.argv)

    main_window = MainWindow()
    main_window.setFixedSize(480, 120)
    main_window.show()

    sys.exit(application.exec_())


if __name__ == '__main__':
    main()

requirements.txt:

PyInstaller==3.3.1
PyQt5==5.10.1
requests==2.18.4

1 个答案:

答案 0 :(得分:0)

问题是因为我使用python 3.7,但是PyIntaller还不支持3.7。使用3.6可以正常使用,但仍要询问管理员权限...