안녕하세요?

 

이전 포스팅에 이어서 계속해서 올리는 이번 포스팅에서는 이번엔 계속해서 반복된 에러에 대해서 한번 탐구해 보다보니, 결국 어느 시점에 도달하게 되었고, 그 내용에 대해서 한번 올려 보고자 합니다.

 

그래서 계속해서 이런 방법만으로는 안되겠다는 생각이 들어서, 한번 위 스크린샷처럼 2번째 py파일을 만들어 보도록 합니다.

 

그리고 나서, 이번에는 위 스크린샷처럼 로그인을 하라는 명령을 주석처리 해서 중복해서 로그인을 하지 않도록 만들어 주도록 합니다.

 

그런데 다른 py파일에서 로그인을 했기 때문에 괜찮을 것이라고 생각을 했습니다만, 그렇지는 않았고, 위 스크린샷처럼 에러가 나오는 것을 볼 수 있었습니다.

 

다음으로는 위 스크린샷에서 볼 수 있는 것처럼 두번째 클래스에서 로그인을 하도록 하고, 위스크린샷에서 있는 메서드를 다 하도록 만들어 놓았습니다.

 

 

그리고 나서 새로운 메서드를 하나 더 만들어서, 여기서는 기본적인 정보를 가지고 오도록 만들어 주도록 합니다. 물론 이 정보는 txt파일에서 가지고 오는 것 입니다. 여기까지는 실행이 순조로웠습니다.

 

다음으로는 위 스크린샷처럼 한번 로그인을 하고나서 이제 멀티 프로세싱을 작동 시키라는 식으로 코드를 만들어 보도록 합니다.

 

그런데 실행을 시켰더니, 위 스크린샷처럼 어찌된 것인지 number가 없다는 식으로 나오면서 에러가 뜨는 것을 볼 수 있었습니다.

 

일단 이 에러까지는 위 스크린샷처럼 int형태를 str형태로 바꾸어 주는 것으로 간단하게 해결을 할 수 있기는 있었습니다. 개인적으로 이런 것은 일단 힘이 빠지기는 합니다.

 

대신 다른 문제가 생기는 것을 볼 수 있었습니다. 이번 문제는 위 스크린샷에서 볼 수 있는 것처럼 pickle을 할 수 없다는 메세지가 나옵니다.

 

그래서 한번 찾아보니까, 이런 에러를 해결하기 위해서는 위 스크린샷처럼 __call__메서드를 작성하는 것이 가장 간단한 해결책이라고 들어서, 이렇게 만들어 보도록 합니다.

 

그런데 이렇게 하고서도 여전히 can't pickle ~objects라는 에러가 생기는 것을 확인할 수 있었습니다. 이게 어떻게 된 에러인가 보니

 

위 스크린샷처럼 PyQt5 자체가 pickle이 되지 않는다 = 멀티 프로세싱에서 잡을 수 없도록 되어 있고, 예외적으로 위 QObjects들이 잡힐 수 있다는 것인데.......... 이건 무언가 좌절이라는 생각이 듭니다.

+ Recent posts