안녕하세요?


지난번 시간에 이제 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가 있는 상태에서는 그냥은 인스톨이 되지 않는 다는 것을 볼 수 있었습니다.

+ Recent posts