python import導入失敗 相對路徑 絕對路徑


首先我們有這樣一個目錄結構

 

經過我無數次的調試,我發現從test3調用spider以及downloadss文件可以直接import調用

 

 

但是從外部的app.py文件調用,spider.py文件死活調用不出來

  

 

以上是downloadss.py文件的調用過程,以下是spyder.py文件的調用過程

 

 

 

 之前大多數程序都是在單個文件中進行運行,很少涉及到調用外部文件。

在此做一個記錄。

在Python中,一個.py文件就稱之為一個模塊(Module),包含.py文件的文件夾,且里面有一個__init_.py的文件夾稱為包(Package),init.py可以是空文件,也可以有Python代碼,因為__init__.py本身就是一個模塊,它的模塊名就是包名。在python腳本被執行,python導入其他包或模塊時,python會根據sys.path列表里的路徑尋找這些包或模塊。如果沒找到的話,程序就會報錯。

在python文件導入的過程中如果遇到了一些文件導入的問題,將導入的格式換為絕對導入,大概率能解決

import sys,os
sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) #將路徑添加到系統路徑中
print(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))

from core import downloadss

class SpiderMain():
def __init__(self):
down = downloadss.Downloader()
down.downloads('http://www.baidu.com')

引用成功

 

 

 

 

參考資料:

https://blog.csdn.net/weixin_44546620/article/details/104755730

https://stackoverflow.com/questions/14132789/relative-imports-for-the-billionth-time/14132912?newreg=4b2f909098bc4af7b9cfc46744ba21cd 

https://www.cnblogs.com/qi-yuan-008/p/12833189.html

 
        

 


免責聲明!

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



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