Linecache getline не работает после установки моего приложения

Я создаю инструмент, который дает обзор сотых результатов испытаний. Этот инструмент обращается к файлу журнала, проверяет вердикты Pass и Fail. Когда происходит сбой, мне нужно вернуться к предыдущим строкам журнала, чтобы зафиксировать причину сбоя. Linecache.getline работает в моей рабочей области (запуск Python через eclipse). Но после того, как я создал установщик Windows (файл.exe) и установил приложение на мой компьютер, linecache.getline ничего не возвращает. Что-то, что мне нужно добавить в мой файл setup.py, чтобы это исправить, или это проблема моего кода?

Код инструмента

precon: из wx.FileDialog, доступ к файлу журнала

    self.result_path = dlg.GetPath() 
    try:
         with open(self.result_path, 'r') as file:
         self.checkLog(self.result_path, file)

def checkLog(self, path, f):

        line_no = 1
        index = 0
        for line in f:
             n = re.search("FAIL", line, re.IGNORECASE) or re.search("PASS", line, re.IGNORECASE)
             if n:
               currentline = re.sub('\s+', ' ', line.rstrip())
               finalresult = currentline


                self.list_ctrl.InsertStringItem(index, finaltestname)
                self.list_ctrl.SetStringItem(index, 1, finalresult)

                 if currentline == "FAIL":

                    fail_line1 = linecache.getline(path, int(line_no - 3)) #Get reason of failure
                    fail_line2 = linecache.getline(path, int(line_no - 2)) #Get reason of failure                    
                    cause = fail_line1.strip() + " " + fail_line2.strip()
                    self.list_ctrl.SetStringItem(index, 2, cause)

                    index += 1
             line_no += 1

1 ответ

Проблема была решена с помощью функции get_line по этой ссылке: Python: linecache не работает должным образом?

Другие вопросы по тегам