your code, pykiwoom.comm_rq_data has race condition. It leads entire program to dead-lock.
After calling following line :
return_code = self.dynamicCall("CommRqData(QString, QString, int, QString)", request_name, tr_code, inquiry, screen_no)
receive_tr_data() can be returned before calling self.request_loop.exec_()
then self.request_loop.exec_() won't return forever.