2017-11-19 12 views
0

Ich habe pyinstaller verwendet, um .exe-Datei für eine lange Zeit zu beenden. Ich habe einige .exe-Datei gemacht und verteilt über alle funktioniert gutPyinstaller Executable funktioniert nicht

Heute habe ich eine App erstellt, um Tabelle aus mehreren HTML-Datei zu lesen und erstellen Sie eine konsolidierte Excel-Datei.

Das Skript funktioniert wie erwartet, aber ich kann diesen Code nicht in .exe-Datei konvertieren. Ich habe pyinstaller und alle Abhängigkeiten installiert und bin in der Lage, andere Codes in .exe zu konvertieren. Es ist nur das man arbeitet nicht

Bitte überprüfen Sie den Code unten

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_()) 
+0

Was haben Sie erwartet und welche Diagnosemeldung haben Sie stattdessen gesehen? –

+0

Ich erwartete eine Benutzeroberfläche, wo ich einige Dateien durchsuchen kann und eine konsolidierte Datei in der Ausgabe bekomme, aber ich bekomme stattdessen eine Fehlermeldung .. "konnte nicht ausgeführt werden. Main" –

Antwort

0

Ihre App wurde nicht ausgeführt, weil die App einen Fehler in ihm hat. Sie haben uns nicht den Stack-Trace gegeben, mit dem wir feststellen könnten, wo der Fehler liegt. Sie haben uns nicht gesagt, wie Sie pyinstaller aufgerufen haben, um die App zu erstellen.

Bitte folgen Sie diesem Rat auf ein Stack-Trace zu erhalten: https://github.com/pyinstaller/pyinstaller/issues/2015#issuecomment-222408252

Ausführen Ihre Anwendung als eine Exe in einer anderen Umgebung passieren wird als als ein Skript, so Importen und dynamische Verknüpfung anders passieren werden. Es kann hilfreich sein, mit einem brandneuen Testskript zu beginnen, von dem Sie wissen, dass es funktioniert, basierend auf vergangenen Erfolgen, und dann eins nach dem anderen neue Funktionen von Ihrem fehlgeschlagenen Skript abrufen, bis Sie auf das Element stoßen, das die Dinge bricht. Die vage Problembeschreibung, die wir derzeit haben, erschwert es, genauer zu sein, da wir nicht sehen können, was Sie sehen. Ein wenig Debugging-Zeit sollte schnell den schwierigen Teil Ihrer App aufdecken.

Verwandte Themen