1. 程式人生 > 其它 >python import匯入失敗 相對路徑 絕對路徑

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