很长一段时间以来,我一直使用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_())发布于 2017-11-19 15:58:41
您的应用程序没有运行,因为您的应用程序有一个错误。您没有给我们堆栈跟踪,这样我们就可以确定bug在哪里了。您没有告诉我们如何调用pyinstaller来构建应用程序。
请遵循以下有关获取堆栈跟踪的建议:https://github.com/pyinstaller/pyinstaller/issues/2015#issuecomment-222408252
将应用程序作为.exe运行在与脚本不同的环境中,因此导入和动态链接将发生不同的情况。你可能会发现从一个全新的测试脚本开始是很有帮助的,你知道这个脚本是有效的,基于过去的成功,然后一个接一个地从你失败的脚本中引入新的特性,直到你遇到破坏事物的项目。我们目前的模糊问题描述使我们很难更加具体,因为我们看不到你们看到的东西。花点时间调试会很快暴露出应用程序中令人烦恼的部分。
https://stackoverflow.com/questions/47372931
复制相似问题