模塊導入失敗問題


最近遇見一個Python模塊導入自己踩到的坑,搞了好久才整明白,記錄一下,也給在同樣采坑的小伙伴借鑒一下。

錯誤現象很明顯,相信大家遇到的報錯都一樣,但是就是不知道為什么,報錯如下:

 

 導入模塊源碼如下:

 

 百思不得其解啊,各種百度和研讀女神博客,感覺模塊導入這塊還是相對容易理解和接受的,為什么就是報錯呢。

這里推薦一下女神寫的很詳細的一篇博客:

https://www.cnblogs.com/Eva-J/articles/7292109.html

好了,進入正題吧,是什么原因導致報這個錯呢,上面一行也是一樣的方法導入,怎么就沒報錯。奇怪吧?

原因就是。。。

你導入的模塊,也導入了你。不能相互導入!!!

就是server_common模塊中已經導入了server_auth模塊,你現在又在server_auth模塊中再導入server_common,這個樣子是不行滴。

那要怎么解決呢?

找到具體原因了,事情就好辦了,把共用的方法提出來或者都寫到一個模塊里,然后只導入一個模塊就好了。就是這么簡單!!

另外,我有個習慣就是在pycharm里寫好的代碼要在dose或其他環境執行一下是否可用,避免出現開發環境運行沒問題,到了生產環境就運行失敗的情況。

結果就出現了以下報錯,pycharm運行ok,在dose窗口運行就報找不到模塊的錯誤。如下圖:

 

盡管start_server.py文件里已經添加了如下信息:

BASE_DIR = os.path.dirname(os.path.dirname(__file__))
sys.path.append(BASE_DIR)

原因是如果只是通過相對路徑執行的話,代碼里的添加路徑信息就沒法把正確的路徑添加到sys.path里,才導致找不到對應的模塊,pycharm是幫你把文件的絕對路徑添加上了,所以才沒有報錯。

 


免責聲明!

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



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