2017-11-19 5 views
0

pyinstaller를 사용하여 오랫동안 .exe 파일을 종료했습니다. 일부 .exe 파일을 만들고 모든 작품에 걸쳐 배포했습니다.Pyinstaller 실행 파일이 작동하지 않습니다.

오늘 여러 개의 .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_()) 
+0

당신은 무엇을 기대했는데, 대신에 어떤 진단 메시지를 보았습니까? –

+0

일부 파일을 찾아보고 출력에서 ​​통합 파일을 얻을 수 있지만 대신 오류 메시지가 나타납니다. "실행하지 못했습니다. 메인" –

답변

0

앱 아래의 코드를 확인하시기 바랍니다 작동하지 않습니다. 버그가 어디에 있는지 결정할 수있는 스택 추적을 제공하지 않았습니다. 앱을 만들기 위해 pyinstaller를 어떻게 호출했는지 말하지 않았습니다.

스택 트레이스를 얻기에 조언을 따르십시오 : 수입 및 동적 링크 다르게 일어날 수 있도록이 .exe는, 스크립트로는 다른 환경에서 일어날 것 같은

https://github.com/pyinstaller/pyinstaller/issues/2015#issuecomment-222408252 응용 프로그램을 실행합니다. 이전에 성공한 것을 바탕으로 작동하는 새로운 테스트 스크립트로 시작한 다음 실패한 스크립트의 새로운 기능을 하나씩 가져 와서 항목을 손상시킬 때까지 유용 할 수 있습니다. 우리가 현재 가지고있는 모호한 문제 설명은 당신이 보는 것을 볼 수 없기 때문에 더 구체적이지 않습니다. 디버깅에 약간의 시간을 소비하면 앱의 번거로운 부분을 신속하게 밝혀야합니다.

관련 문제