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

가장 힘들어 보이는 장애물을 넘기 위한 시도-10-

by 인터넷떠돌이 2019. 4. 19.
반응형

안녕하세요?

 

지난번 포스팅에서 입력한 데이터가 없으면 완전히 자식 프로세스가 얼어버리는 문제점이 나온다는 것을 알 수 있었습니다. 그런데 다음으로 어떻게 해서 결과를 얻는데 성공했으니, 이제는 이를 한번 실제 main.py까지 적용해 보고자 하는 것이 이번 포스팅에서 나오는 목표입니다.

 

일단 위 스크린샷에 보이는 것처럼 한번 QProcess에서도 input()이 적용이 될 수 있는지 부터 먼저 알아보기 위해서 기존에 빈 데이터가 있던 부분에서 새로운 데이터를 넣어서 한번 시험해 보도록 합니다. 물론 자식 프로세스는 gui가 나오는 test.py가 아니라 test2.py를 하도록 합니다.

 

그리고 나서 test2.py에서는 위 스크린샷에서 보이는 것처럼 한번 받아들인 데이터를 decode시키도록 합니다. 이렇게 해서 결과가 나오기를 기대하고 실행을 시켜 봅니다.

 

그런데 이렇게 하고서 얼어붙는 freeze는 일어나지 않았습니다만, 문제는 아무런 데이터도 나오지 않는 것도 확인할 수 있었습니다.

 

혹시나 싶어서 한번 자식 프로세스를 test.py로 바꾸어서 어떤 변화가 나오는지 한번 살펴보는  시도도 해 보도록 합니다.

 

 

 

'

그리고 나서 위 스크린샷에서 보이는 것처럼 test.py에 input()을 넣어 주도록 하고, 이 값 역시 gui에서 나오도록 반영해 보도록 합니다.

 

우선 결과부터 확인해 보자면, 일단 제대로 실행은 되기는 되는 것을 확인할 수 있었습니다만 아무런 결과도 나오지 않았고, gui역시 나오지 않았습니다.

 

그래서 이제는 하는 수 없이 main.py를 손봐야 할 때가 되었습니다. 아무리 생각해도 지금 당장 QProcess에서는 어떻게 할 수 없으니, subprocess메서드로 대신해서 하기는 하는데, 일단 위 스크린샷을 보시면 알 수 있듯이 이전에는 주석처리리가 된 것을 바꾸어 보았습니다.

 

일단 기존에 있던 수많은 print()함수를 모두 제거해 보도록 합니다. 이건 main.py만이 아니라 다른 py파일에 있는 print()함수로 지정이 되어 있는 표식들까지 될 수 있으면 제거해 보도록 합니다.

 

그리고 나서 agent.py로 가서 위 스크린샷에 보이는 것처럼, 여기서 어떤 결정이 나왔느냐를 보고나서 한번 print()로 그 결정들을 찍어 보도록 합니다.

 

마찬가지고 매도나 관망을 결정하면 print()함수를 이용해서 이를 한번 작업해 보도록 합니다. 그리고 나서 결과가 나오리라 기대를 했습니다만.....

 

그리고 나서 pytrader4.py에서 위 스크린샷을 보시면 알 수 있듯이 기존의 데이터로 바꾸어 주도록 하며, 자식 프로세스로 실행시킬 py파일 이름도 바꾸어 주도록 합니다.

 

이렇게 했더니 특별한 에러가 없기는 하지만, 문제는 아무런 결과도 출력이 되지 않는 결과가 나오는 것을 확인할 수 있기는 있었습니다. 그래서 이 문제를 이제 해결해야 하는 단계에 들어오기는 들어왔습니다. 아무튼 다음 포스팅에서는 이 방법을 모색하는 것으로 올리도록 하겠습니다.

반응형