_original_start_new_thread = thread_module._original_start_new_thread = thread_module.start_new_thread AttributeError: module 'thread' has no attribute 'start_new_thread'
时间: 2023-08-15 11:06:18 浏览: 265
这个错误的原因是 Python 3 已经废弃了 `thread` 模块中的 `start_new_thread` 方法,取而代之的是 `threading` 模块中的 `Thread` 类。
你需要将代码中使用 `thread.start_new_thread()` 的部分改为使用 `threading.Thread()`,并将原来的线程函数作为参数传入。例如:
```python
import threading
def my_function():
# 线程要执行的代码
pass
# 创建一个新线程
my_thread = threading.Thread(target=my_function)
# 启动线程
my_thread.start()
```
这样就可以创建并启动一个新的线程了。
相关问题
为什么我没有用到线程,运行debug的时候还是报错:_original_start_new_thread = thread_module._original_start_new_thread = thread_module.start_new_thread AttributeError: module 'thread' has no attribute 'start_new_thread'
这个问题可能是因为您的代码中使用了旧版本的 Python 线程模块 thread,而在新版本的 Python 中,该模块已被移除。在新版本的 Python 中,您应该使用 threading 模块来处理线程。如果您的代码中使用了 thread 模块,请尝试将其替换为 threading 模块,并使用 threading.Thread 类来创建线程。这应该可以解决您的问题。如果问题仍然存在,请提供更多代码和错误信息,以便我可以提供更具体的建议。
import sys from Qt.demo01 import demo01 from PyQt5.QtWidgets import QApplication,QMainWindow if __name__ == "__main__": #只有直接运行这个脚本,才会往下执行 #别的脚本文件执行,不会调用这个语句 #实例化,传参 app = QApplication(sys.argv) #创建对象 mainWindow = QMainWindow() #创建ui,引用demo01文件中的UI_MainWindow类 ui = demo01.Ui_MainWindow() #调用UI_Mainwindow类的setupUi,创建初始组件 ui.setupUi(mainWindow) #创建窗口 mainWindow.show() #进入主循环,并通过exit函数确保主循环安全结束 sys.exit(app.exec_())进入debug的时候报错_original_start_new_thread = thread_module._original_start_new_thread = thread_module.start_new_thread AttributeError: module 'thread' has no attribute 'start_new_thread'
这个问题可能是因为您的代码中使用了旧版本的 PyQt5,而在新版本的 PyQt5 中,线程模块已经被修改。您可以尝试在代码开头添加以下代码,以手动设置 PyQt5 为新版本的线程模块:
```python
import threading
threading._dummy_thread._thread.start_new_thread = threading._dummy_thread.start_new_thread
```
这应该可以解决您的问题。如果问题仍然存在,请尝试升级 PyQt5 到最新版本。
阅读全文