모듈을 exe
사용하여 파일을 만들었습니다 py2exe
. 이상한 점은 exe
from 명령 줄을 실행할 때 작동해야하는 것처럼 작동 하지만 this를 두 번 클릭 exe
하면 콘솔이 열리고 콘솔이 즉시 닫힙니다.
나는 logging
문제가 어디에 있는지 알아내는 방법을 작성하고 try-except
예외를 포착하지 않는 방법을 둘러 쌌다 .
다음은 내 코드입니다.
if __name__ == '__main__':
try:
mh = moto()
db = database() # you can find __init__ of database() below
log('ok') # I CAN'T FIND THIS LINE IN THE LOG FILE SO THE PROBLEM IS PROBABLY INSIDE __INIT__ OD database()
except Exception as e:
log(str(e))
log(str(traceback.format_exc))
for url in [__CATs__,__hyphens__]:
log(' for url')
init database () :
class database():
def __init__(self):
self.conn = sqlite3.connect('db.db') # Database is created
self.cursor = self.conn.cursor()
self.create_table_moto()
self.drop_and_create_temp_table()
log('init_end') # I CAN FIND THIS LINE IN LOG FILE SO THE PROBLEM SHOULD BE AFTER database() initialization but i doubt that because of the log right after database()
그래서 가장 이상한 점은 내 로그 파일 __init__
의 마지막 줄 log('init_end')
을 볼 수 있기 때문에 database () 메서드가 아마도 올바르게 작동 한다는 것입니다 . 그러나이 초기화 이후의 rigth log('ok')
는 로그 파일에서 볼 수없는 또 다른 로그 이며 예외가 포착되지 않았습니다.
매우 중요한 편집 :
py2exe를 사용하여 exe 파일을 생성하면 dist
프로젝트가 저장된 폴더 에 폴더 가 생성 됩니다. exe 파일은 내가이 상위 폴더에있을 때만 cmd를 사용하여 시작할 수 있으므로 dist\moto.exe
. moto.exe
또는 project\dist\moto.exe
작동하지 않습니다. 편집하다:
또 다른 이상한 점 :
다음 줄을 추가 mLib.printToFile('testovaci_txt.txt', 'nieco')
했습니다. 그 직후 log('ok')
작동하지 않고 testovaci_txt.txt
'exe'및 기타 파일이 저장된 폴더에 파일 을 생성합니다 .
EDIT2 :이 log
메서드는 내부의 외부 라이브러리에 있습니다 site-packages
. log('ok')
파일이 어디에 저장 되는지 알아 내기 위해 파일을 생성하고 logging-testing.txt
바로 입력 log('ok')
하고 프로그램을 시작하는 'log_2 ('ok ')'를 생성 했습니다 . 그런 다음 Windows에서이 파일을 검색했지만 찾을 수 없습니다.
문제가 어디 있는지 알고 있습니까?
의도적으로 설계된 것입니다.
exe를 두 번 클릭하면 실행되고 닫힙니다. 파일 끝에 "raw_input ()"(Python2의 경우) 또는 "input ()"(Python3의 경우)를 파일 끝에 넣을 수 있습니다 ( "log ( 'for url')"뒤에 있지만 url에는 "에 사용 된 들여 쓰기 in [__CATs __, __ hyphens__] : ").
로그의 'ok'에 대해 log () 함수가 생성 한 것입니까? 그렇다면 파일을 쓰기 전에 로그의 모든 줄에 '\ n'을 추가합니까?
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다