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 не работает должным образом?