首頁 > 軟體

Python import自己的模組報錯問題及解決

2022-02-11 10:01:26

在實際使用python時,我們會將一些公共的東西寫到一些基礎模組中,供其他模組去呼叫,這時會去import自定義的一些基礎模組,然後來匯入。

自己寫好了指令碼,然後匯入,匯入的情況分為以下情況:

1. 執行的模組與需要呼叫自定義基礎模組在同一資料夾下

2. 自定義模組與所需要呼叫自定義模組的檔案不在同一資料夾下

一、同一資料夾下

這時的呼叫就較為簡單了,直接匯入即可

from deal_excel import copy_sheetWrite, row_commonWrite
from deal_time import minus_date

但是這個時候在PyCharm中顯示的是報錯

但是執行程式是不會報錯的

為了讓在PyCharm中不報錯,可以將包/資料夾設為 sources Root

現在就不報錯了

在cmd命令中執行也是成功的

如果在模組前面加上包名(下面有個__init__.py)或者資料夾名

from msydwork.deal_excel import copy_sheetWrite, row_commonWrite
from msydwork.deal_time import minus_date

PyCharm中顯示不報錯,執行程式成功

但是在cmd命令中執行卻是失敗的

所以對於處於同一資料夾下的情況:直接匯入模組;為了PyCharm中不報錯,將包/資料夾設為sources Root

二、處於不同資料夾下面

在PyCharm中是不會報錯而且執行成功,是由於將deal_excel、deal_time所在包設為sources Root:

這時在cmd命令中是執行失敗的

在PyCharm中是不會報錯而且執行成功另外一種方法:導包時全路徑(可以不設sources Root)

這時在cmd命令中也是報錯的

為了讓程式碼在cmd命令中執行成功,需要將自定義基礎模組的資料夾/包新增到Python的庫路徑中。

三、找到本地庫的路徑,然後將檔案拷進去即可

拷貝到Libsite-packages中

PyCharm中是不會報錯而且執行成功

cmd命令中執行成功

四、手動給python新增搜尋路徑

在python安裝目錄的Libsite-packages資料夾中建立一個.pth檔案,內容為自己寫的庫絕對路徑

這個時候PyCharm中是會報錯的,但是執行是成功的

cmd命令是執行成功的。

還有一種方法匯入完整路徑:

將根目錄設為搜尋路徑

這時候不管在PyCharm還是cmd執行都是成功的

所以對於處於不同一資料夾下的情況:先手動給python新增搜尋路徑(根目錄),然後直接匯入模組全路徑;

在這裡說一句Python的包搜尋路徑

Python會在以下路徑中搜尋它想要尋找的模組:

1. 程式所在的資料夾

2. 標準庫的安裝路徑

3. 作業系統環境變數PYTHONPATH所包含的路徑

以上為個人經驗,希望能給大家一個參考,也希望大家多多支援it145.com。


IT145.com E-mail:sddin#qq.com