안녕하세요?

 

계속해서 가장 힘들어 보이는 서로 다른 프로세스간의 통신을 어떻게 뚫기 위해서 한번 애를 쓰고 있는 중 입니다. 예전에는 txt파일을 이용해서 꽁수로 넘어갈 수는 있었지만, 자식프로세스의 자식 프로세스인 마치 손자 프로세스를 만들어서 돌리는 과정에서는 이런 꽁수가 안 통했습니다.

 

일단 위 스크린샷에 보이는 것처럼, pytrader3에서 기존에 있던 pytrader위치를 아예 문자열 변수로 만들어서 직접 전달하고자 합니다.

 

그리고 나서 Qprocess()선언은 미리미리 __init__()에서 해 주도록 바꾸었습니다. 이걸 너무 뒤에서 하니까 이래저래 골치아픈 일이 많아 졌습니다.

 

그리고 나서 한번 위 스크린샷과 같이 pytrader3에서 기존에 있던 exe프로그램 대신, 직접 파이썬 스크립트를 실행시키기 위해서 아예 새로이 바꾸어 보았습니다.

 

그리고 나서, write()만이 아니라, 아예 closeWriteChannel()이라는 함수까지 동원해서 채널을 닫아주는 작업까지 하도록 만들어 보았습니다.

 

 

다음으로는 newTestAI라는 프로젝트에 제대로 pyqt5가 설치되어 이시는지를 한번 알아보기 위해서 pip를 사용해서 인스톨을 하고자 했는데, 일단 여기서는 제대로 설치가 되어 있다는 것을 확인할 수 있었습니다.

 

다음으로는 RLTrader의 역할을 하는 스크립트에서는 위 스크린샷과 같이 pyqt5에 대한 다양한 사항을 import해 주도록 만들어 주도록 합니다.

 

다음으로는 여기서도 QProcess()를 선언하도록 하고, readAll()이라는 함수를 가지고서 한번 전달이 된 데이터를 읽을 수 있으리라 생각을 하고서 작업을 하였습니다.

 

다음으로는 자식 프로세스에서 결과를 받아보기 위해서, 위 스크린샷과 같이 자식 프로세스가 끝나기를 기다린 다음에, 결과를 readAll()로 읽어 오도록 합니다.

 

그런데 결과는 제 기대와는 반대로 아무런 결과도 나오지 않는 것을 볼 수 있었습니다. 일단 여기서는 제대로 데이터가 들어갔다면, action_list.txt가 생성이 되어야 하기에, 이게 생성되지 않은 것으로 봐서, 제대로 ㅈ닥동을 하지 못한 것은 확실해 보입니다.

 

어떻게 된 일인지 알아보기 위해서, 먼저 위 스크린샷에 나와 잇는 것처럼 한번 표식을 찍어서 진짜로 아무것도 나오지 않은 것이 맞는지 알아보고자 했습니다.

 

일단 이렇게 하고도, 표식이 찍히기는 찍히는데, 정작 여기서 중요한 데이터를 비롯한 에러 메세지도 나오지 않는 것으로 미루어 보아서 제대로 된 것이 없다는 생각이 듭니다.

 

그래서 다음으로는 보내는 데이터가 제대로 보내지기는 했는지 알아보기 위해서, RLTrader에서 받은 데이터를 표시해 보라는 식으로 만들었습니다.

 

하지만 이렇게 하고도 아무런 반응이 나오지 않는 것을 확인할 수 있었습니다. 이렇게 해서 방법에 무언가 문제가 있다는 것을 알수는 있습니다만, 정확회 무엇을 해야 할지 잘은 모르겠는 상황이 벌어졌습니다. 일단 이번 포스팅에서 보여주고자 하는 시도는 여기까지 이지만, 그래도 성공할 때까지 계속해서 시행착오를 하겠습니다.

+ Recent posts