반응형
파이썬에 대한 지식의 깊이는 얕지만, 여러 날 고민했던 문제를 해결하게 되어 기록할 겸 작성합니다.
1. 문제점
아래와 같은 예제 코드를 복사해서 작성하고,
https://wikidocs.net/21920
import sys
from PyQt5.QtWidgets import QApplication, QWidget
class MyApp(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.setWindowTitle('My First Application')
self.move(300, 300)
self.resize(400, 200)
self.show()
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = MyApp()
sys.exit(app.exec_())
실행할 때는 문제가 없는데,
VS Code에서 디버깅 시 아래와 같이 장황한 에러 메시지가 표시되는데,
문제는 맨 아래의 AttributeError: module 'thread' has no attribute 'start_new_thread'입니다.
2. 해결 과정
Stack Overflow도 찾아보고 ChatGPT도 찾아보고 여러 가지를 해봐도 안 됐는데,
아래 사이트에서 답을 찾았습니다.
https://blog.csdn.net/qq_32641857/article/details/136235494
위 에러 화면의 맨 아래를 보면 pydev_monkey.py에서 문제가 발생한다는 것을 알 수 있습니다.
File "c:\Users\lsw32\.vscode\extensions\ms-python.debugpy-2024.11.2024092501-win32-x64\bundled\libs\debugpy\_vendored\pydevd\_pydev_bundle\pydev_monkey.py", line 1182, in patch_thread_module _original_start_new_thread = thread_module._original_start_ new_thread = thread_module.start_new_thread |
① 문제 발생 원인은 thread를 import 할 때
종전에는 import thread라고 했는데,
이제는 import _thread라고 _를 붙여야 한다는 것입니다.
변경 전 | 변경 후 |
try:
import thread as _thread
except:
import _thread
|
import _thread |
② 그리고 thread.py도
pip uninstall thread라고 해서 지우라고 합니다.
문제의 파일을 수정하고 실행하니 에러가 사라졌습니다.
그리고, 스레드 사용할 때 코드를 보니 import threading으로 되어 있습니다.
영어권에서는 해결책을 못 찾았는데, 중국 사이트에서 답을 찾다니,
중국 사람들 대단하네요.
반응형
'Python' 카테고리의 다른 글
PySimpleGUI License key 등록 방법 (2) - 등록 PC에서 (0) | 2024.09.30 |
---|---|
PySimpleGUI License key 등록 방법 (1) - 다른 PC에서 (0) | 2024.09.27 |
PySimpleGUI도 유료화되는군요. (8) | 2024.09.26 |
Selenium 실행시 Chrome 115 버전 문제 해결 (18) | 2023.07.29 |