python如何按钮点击跳转到另一个py文件的def函数?

问题遇到的现象和发生背景

使用websocket通信,创建窗口不同按钮点击事件实现websocket发送不同信号,但是点击后跳转不了并且窗口会卡死(猜想是线程问题)。

问题相关代码,请勿粘贴截图

button.py

import sys
from PyQt5 import QtWidgets, QtCore
from Robot.Main import Ui_MainWindow
import websocket
import websocket3

ws = websocket.WebSocketApp("ws://192.168.1.2:9901")

class Test(QtWidgets.QMainWindow,Ui_MainWindow ):
def init(self, parent=None, *args, **kwargs):
super().init(parent, *args, **kwargs)
self.setupUi(self)

def move1(self):
    websocket3.stop(ws)

def stop1(self):
    websocket3.stop(ws)

def back1(self):
    websocket3.back(ws)

if name == 'main':
app = QtWidgets.QApplication(sys.argv)
mainWindow = QtWidgets.QMainWindow()
ui = Test()
ui.show()
sys.exit(app.exec_())

img

websocket3.py
import websocket
import asyncio
import json
import buttontest
import sys

def move(ws):
msg = {"style": 1,
"goal": 1,
"status": 1
}
data = {"op": "request", "uid": "1", "service": "control", "args": msg}
ws.send(json.dumps(data))

def stop(ws):
msg = {"style": 1,
"goal": 3,
"status": 1
}
data = {"op": "request", "uid": "1", "service": "control", "args": msg}
ws.send(json.dumps(data))

def back(ws):
msg = {"style": 1,
"goal": 2,
"status": 1
}
data = {"op": "request", "uid": "1", "service": "control", "args": msg}
ws.send(json.dumps(data))

if name == "main":
websocket.enableTrace(True)
ws = websocket.WebSocketApp("ws://192.168.1.2:9901")
ws.run_forever(ping_timeout=5)

运行结果及报错内容

img

我的解答思路和尝试过的方法
我想要达到的结果

通过界面点击不同按钮调用websocket文件发送不同信号

ctrl