본문 바로가기
무모한 도전-주식 인공지능 만들기

다시 시작해 보는 exe파일을 파이썬 스크립트에서 실행시키기

by 인터넷떠돌이 2018. 12. 27.
반응형

안녕하세요?


지난번 시간에 이제 10초 단위로 현재가를 비롯한 주식의 정보를 가져 오기는 가져오는데, 이제는 exe파일을 실행시키기 위한 작업에 들어가 봐야 합니다. 왜 이렇냐 하면, RLTrader는 64비트 운영체제에서만 텐서플로를 설치해서 작동을 할 수 있는데, 정작 키움증권의 Open API는 32비트 파이썬에서만 작동을 한다는 단점이 있기 때문입니다.



일단 실험을 위해서 기존에 있던 PyQtTest_32bit를 복사해서 새로운 환경으로 만들어 주도록 합니다.



그런데 역시나 텐서플로를 비롯한 가지가지 라이브러리들이 32비트 환경에서는 설치가 안되는 것을 볼 수 있었습니다.



그래서 이전에 exeoperation을 위해서 만들어 주었는 exe파일이 있었는데, 일단 연습으로 이걸 파이참에서 실행시켜 보고자 합니다.



먼저 main.exe를 기존의 pytrader의 프로젝트가 있는 폴더에 가지고 오도록 합니다.



그리고 나서 위 스크린샷과 같이main.exe의 경로를 지정하는 변수가 있는데, 이 변수는 변수대로 놔 두도록 하고, 다음으로는 os.startfile()이라는 함수를 사용했습니다.




그런데 제대로 실행은 커녕 에러가 나오는 것을 볼 수 있었습니다.



그래서 startfile()이라는 함수가 아니라, system()이라는 함수를 사용하도록 합니다.



일단 실행이 된다는 것을 확인은 할 수 있었는데, 문제는 Hello World! 라는 메세지가 나오지 않는 것을 볼 수 있었습니다. 그래서 제대로 실행이 되기는 되는 것이 맞는지 확인하기 위해서 다른 방법을 써 보고자 합니다.



main.exe를 만든 코를 수정해서, PyQt5를 import하고 나서, 다음으로는 위 스크린샷처럼 메세지 박스를 띄우도록 만들어 주도록 합니다.



그런데 이 메세지 박스를 띄우는 것은 좋았지만, 문제는 메세지 박스를 종료하고 나서도 제대로 종료가 되지 않는 것을 볼 수 있었습니다.




sys.exit()라는 함수가 바로 프로세스를 종료하라는 의미인데, 이렇게 함수를 사용하는 것으로서, 프로그램을 완전히 종료 시키도록 합니다.



이렇게 하고나니, 제대로 프로그램이 종료가 되는 것을 확인할 수 있었습니다.



이제 pyinstaller를 이용해서 한번 제대로 인스톨을 해 보도록 합니다.



일단은 제대로 되는 듯 합니다만...........



cannot fine exisiting PyQt5 plugin directories라는 에러가 발생하는 것을 볼 수 있었습니다. 이런 에러를 어떻게든 해결해야 하는데, 문제는 나중에 포스팅이 여러개 나오겠지만, 간단히 해결이 되는 문제가 아니기는 아니었습니다. 아무튼 pyinstaller를 사용해서는 기존의 PyQt5가 있는 상태에서는 그냥은 인스톨이 되지 않는 다는 것을 볼 수 있었습니다.

반응형