Pyinstaller 可执行文件不起作用



我一直在使用pyinstaller来制作.exe退出文件很长时间了。我已经制作了一些.exe文件并将其分发到所有作品中

今天,我创建了一个应用程序来从多个.html文件中读取表并创建一个合并的Excel文件。

该脚本按预期工作正常,但我无法将该代码转换为.exe文件。我安装了pyinstaller和所有依赖项,并且能够将其他代码转换为.exe。只是这个不起作用

请检查下面的代码

import sys
import os
import pandas as pd
from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtWidgets import QApplication, QWidget, QInputDialog, QLineEdit, QFileDialog
from PyQt5.QtGui import QIcon
class Window(QtWidgets.QWidget):
def __init__(self):
    super().__init__()
    self.init_ui(self)
def init_ui(self,Consolidate):
    Consolidate.setObjectName("Consolidate")
    Consolidate.resize(410, 300)
    self.progressBar = QtWidgets.QProgressBar(Consolidate)
    self.progressBar.setGeometry(QtCore.QRect(20, 220, 381, 23))
    self.progressBar.setProperty("value", 0)
    self.progressBar.setObjectName("progressBar")
    self.pushButton = QtWidgets.QPushButton(Consolidate)
    self.pushButton.setGeometry(QtCore.QRect(320, 30, 51, 21))
    self.pushButton.setObjectName("browse")
    self.lineEdit = QtWidgets.QLineEdit(Consolidate)
    self.lineEdit.setGeometry(QtCore.QRect(20, 30, 291, 21))
    self.lineEdit.setObjectName("lineEdit")
    self.pushButton_2 = QtWidgets.QPushButton(Consolidate)
    self.pushButton_2.setGeometry(QtCore.QRect(140, 250, 131, 41))
    self.pushButton_2.setObjectName("go")
    self.textBrowser_2 = QtWidgets.QTextEdit(Consolidate)
    self.textBrowser_2.setGeometry(QtCore.QRect(20, 70, 351, 141))
    self.textBrowser_2.setObjectName("textBrowser_2")
    self.retranslateUi(Consolidate)
    QtCore.QMetaObject.connectSlotsByName(Consolidate)
def retranslateUi(self, Consolidate):
    _translate = QtCore.QCoreApplication.translate
    Consolidate.setWindowTitle(_translate("Consolidate", "Consolidate Excel"))
    self.pushButton.setText(_translate("Consolidate", "Browse"))
    self.lineEdit.setPlaceholderText(_translate("Consolidate", "Please Browse The Target Folder"))
    self.pushButton_2.setText(_translate("Consolidate", "Go"))

    self.pushButton.clicked.connect(self.fname)
    self.pushButton_2.clicked.connect(self.go)
    folder = str()
def fname(self):
    global folder
    file = str(QFileDialog.getExistingDirectory(self, "Select Folder"))
    folder = (file)
    print (folder)
    self.lineEdit.setText(folder)
def go(self):
    import pandas as pd
    dflist = list()
    for file in os.listdir(folder):
        path = os.path.join(folder, file)
        if os.path.isdir(path) or file == "QtoolAssigned.xlsx":
            continue
        else:
            print(file)
            self.textBrowser_2.append(file[7:-28])
            df = pd.read_html(path)
            df = df[0].dropna(axis=0, thresh=4)
            df['Team Name'] = str(file[7:-28])
            dflist.append(df)
        concatdf = pd.concat(dflist,axis=0)
    concatdf.to_excel(folder+'\'+'QtoolAssigned.xlsx', index=None)
    self.progressBar.setProperty("value",100)
if __name__=='__main__':
app = QtWidgets.QApplication(sys.argv)
ex = Window()
ex.show()
app.exec_()
sys.exit(app.exec_())

您的应用未运行,因为您的应用存在错误。您没有向我们提供堆栈跟踪,以便我们确定错误的位置。您没有告诉我们您如何调用 pyinstaller 来构建应用程序。

请遵循以下建议获取堆栈跟踪:https://github.com/pyinstaller/pyinstaller/issues/2015#issuecomment-222408252

将应用程序作为.exe运行将在与脚本不同的环境中进行,因此导入和动态链接将以不同的方式发生。您可能会发现,根据过去的成功,从一个您知道有效的全新测试脚本开始,然后从失败的脚本中逐个提取新功能,直到遇到破坏事物的项目,这很有帮助。我们目前模糊的问题描述使得很难更具体,因为我们看不到你所看到的。花一点时间调试应该很快就会揭示应用中麻烦的部分。

相关内容

最新更新