python RuntimeError:cannot join current thread 錯誤:無法加入當前進程

筆者環境 python3.7+tqdm4.28.1

在運行程序的時候老是會報錯

RuntimeError:cannot join current thread

原因:參考_1,參考_2

解決方法:

定位到你安裝的tqdm包,一般都是安裝在site-packages/tqdm中,然後找到_monitor.py文件,打開在以下內容中做出修改

from threading import Event,Thread,current_thread #第一行修改爲這樣
.
.
.
def exit(self):                                   #50行之後的exit函數修改爲這樣
        self.was_killed.set()
        if self is not current_thread():
            self.join()
        return self.report()

很奇怪,當我在win10中查找的_monitor文件時已經修改好了的,可能是4.31.1新版本已經修改好了這個bug,但是tensorflow環境下的版本應該還是會出問題。

(base) C:\Users\Lenovo>activate tensorflow

(tensorflow) C:\Users\Lenovo>python
Python 3.6.7 |Anaconda, Inc.| (default, Oct 28 2018, 19:44:12) [MSC v.1915 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import tqdm
>>> tqdm.__version__
'4.28.1'
>>> exit()

(tensorflow) C:\Users\Lenovo>activate torch

(tensorflow) C:\Users\Lenovo>conda.bat activate torch

(torch) C:\Users\Lenovo>python
Python 3.6.8 |Anaconda, Inc.| (default, Feb 21 2019, 18:30:04) [MSC v.1916 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import tqdm
>>> tqdm.__version__
'4.31.1'
>>>

可能是新版本的tqdm(4.31.1)已經修改好了這個bug

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章