首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Pyinstaller Executable不工作

Pyinstaller Executable不工作
EN

Stack Overflow用户
提问于 2017-11-19 01:40:59
回答 1查看 1.6K关注 0票数 0

很长一段时间以来,我一直使用pyinstaller来创建.exe文件。我制作了一些.exe文件,并将其分发给所有工作人员。

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

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

请检查下面的代码

代码语言:javascript
复制
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_())
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-11-19 15:58:41

您的应用程序没有运行,因为您的应用程序有一个错误。您没有给我们堆栈跟踪,这样我们就可以确定bug在哪里了。您没有告诉我们如何调用pyinstaller来构建应用程序。

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

将应用程序作为.exe运行在与脚本不同的环境中,因此导入和动态链接将发生不同的情况。你可能会发现从一个全新的测试脚本开始是很有帮助的,你知道这个脚本是有效的,基于过去的成功,然后一个接一个地从你失败的脚本中引入新的特性,直到你遇到破坏事物的项目。我们目前的模糊问题描述使我们很难更加具体,因为我们看不到你们看到的东西。花点时间调试会很快暴露出应用程序中令人烦恼的部分。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47372931

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档