'module' object has no attribute 'Thread'解決方法及模塊加載順序


源碼片段:

class myThread(threading.Thread):
    def __init__(self, threadID, name, counter):
        threading.Thread.__init__(self)
        self.threadID = threadID
        self.name = name
        self.counter = counter

 

執行時提示如下錯誤:

Traceback (most recent call last):

  File "threading.py", line 2, in <module>

    import threading

  File "I:\MY_TEST\py\thread\threading.py", line 7, in <module>

    class myThread(threading.Thread):

AttributeError: 'module' object has no attribute 'Thread'

 

1、檢查是否為threadingThread拼寫錯誤,認真對比后確認無誤;
2、判斷是否為threading模塊沒有安裝,查詢發現python3.4自帶就有此模塊;
3、最后檢查腳本的名稱是threading.py,懷疑是與模塊名稱沖突,導致加載錯誤,將腳本名稱改為thread_ing.py后執行,正確


由此引出兩個問題:

1、命名問題:不管是變量還是腳本名稱,都不要和python本身的模塊、關鍵字等重合;

2、Python加載模塊順序問題:

加載模塊搜索路徑被存儲在sys模塊中的path變量中,我們使用sys.path輸出:

 

第一個參數是‘’(空串),代表是當前目錄,后續的目錄分別為PYTHONPATH目錄和標准庫目錄,所以得到加載模塊的順序為:

1)當前主目錄

2)PYTHONPATH目錄

3)標准庫目錄

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM