안녕하세요?
결국 2019년 6월 28일 모의 주식투자에 제대로 들어가 보기 위해서 한번 밤새 가지가지 시도를 하기는 했습니다만, 결국 마지막에는 exe파일로 빌드해서 한번 작업에 들어가 보는 것으로 결론을 내리고서, 작업에 들어가 보고자 합니다. 그런데 포스팅의 내용이 길어서 여러개로 잘라야 했습니다. 이점 양해 부탁드립니다.
먼저 사용하고자 하는 환경에다가 pyinstaller를 pip명령어를 이용해서 설치해 주도록 합니다. 이 과정까지는 어렵지 않게 되었습니다.
다음으로는 EXEversion_StockTrader라는 프로젝트를 새로 만들어 주도록 합니다. 이렇게 하는 이유는 여러가지가 들어가서 꼬이는 것을 막기 위해서 입니다.
그리고 파이썬 환경설정에서 기존의 PyQtTest라는 32비트의 환경을 지정해 주도록 합니다. 이렇게 해서 파이참에서 하는 준비는 거의 다 끝이 났습니다.
이제 일련의 파일들을 가지고 오도록 합니다. 그때는 마음이 급해서 이런저런 실수가 있었는데, 지금와서 생각해 보니까 중요한 파일이 하나 없다는 것을 알 수 있었습니다.
그래서 프로그램을 돌리기 위해서 필요한 so파일까지 다 가지고 오는 데는 성공하기는 했습니다만, 일단 여기는 여기까지 하도록 해 봅니다.
하다하다 보니, 위 스크린샷처럼 ui파일도 잊어 먹어서 이런저런 에러가 나오는 것을 알 수 있었습니다. 일단 여기까지 가지고 오도록 합니다.
이제서야 제대로 실행이 되어서 다수의 MyStockTrader가 실행이 되는 것을 확인할 수 있었습니다. 이렇게 하는 것으로 보아서, 이제 exe파일로 만들 수 있는 준비는 된 듯 합니다.
먼저 pathex라는 항목에는 프로젝트가 있는 경로를 입력해 주도록 하고, 다음으로는 빌드가 되는 파일의 이름을 따로 지정해 주어야 하는데, EXEofStockTradser라고 해 주도록 합니다.
일단 아나콘다 프롬프트로 가서, 한번 프로젝트의 폴더로 간 다음에, pyinstaller --noconfirm --log-level=WARN --nowindow --uac-admin main.spec 이라고 입력하도록 합니다. 여기서 --uac-admin은 바로 관리자 권한을 실행파일에 부여해 주는 것 입니다. 그런데 어째서 인지 에러가 나 버렸습니다.
한번 위 스크린샷처럼 목표가 되는 py파일을 잘못 지정해서 생기는 일이였습니다. 여기서는 위 스크린샷과 같이 제 타겟이 되는 py파일을 지정해 주도록 합니다.
이렇게 하고 다시금 아나콘다 프롬프트에서 작업을 했지만, 여기서도 또 에러가 나오는 것을 알 수 있습니다. 이번에 나온 에러는 unicodedescape라는 에러 입니다.
이 에러를 해결하기 위해서는 골치아프게도, pyinstaller 자체의 파일을 수정해 줄 필요가 있다는 내용을 stack overflow에서 들을 수 있었습니다.
그래서 이번에는 위 스크린샷처럼 PyQtTest_32bit에 설치가 되어 있는 pyinstaller를 찾아가서, 여기서는 compat.py 파일에서 작업을 처리하도록 합니다.
인터넷에서는 369줄이라고 했지만, 제 경우에는 370줄에서 위 스크린샷과 같은 내용을 볼 수 있었습니다. 여기서 그냥 encoding이라고만 되어 있는 내용이 있는데.......
여기다가 뒤에 errors='ignore'라고 입력을 해 주도록 합니다. 이렇게 해서 이전에 있던 unicodeescape라는 에러는 사라질 것으로 예상이 됩니다.
그런데 문제가 또 생겼습니다. 이번에도 여전이 이 unicodeescape라는 에러가 계속해서 뜨는 것을 볼 수 있었습니다. 이 에러를 잡지 못해서 이래저래 애를 먹기 시작하는데, 지금와서 생각해 보면, 이건 겨우 시작에 불과하다는 것을 이 때는 몰랐습니다.
'무모한 도전-주식 인공지능 만들기' 카테고리의 다른 글
exe파일로 만들어서 작업에 들어가 보는 시도-3- (0) | 2019.07.01 |
---|---|
exe파일로 만들어서 작업에 들어가 보는 시도-2- (0) | 2019.06.30 |
메모리 누수를 잡기 위한 기타 등등의 시도 (0) | 2019.06.30 |
메모리 누수를 파악하기 위한 작업-3- (0) | 2019.06.30 |
메모리 누수를 파악하기 위한 작업-2- (0) | 2019.06.30 |