Python import自己的模塊報(bào)錯(cuò)問題及解決
在實(shí)際使用python時(shí),我們會(huì)將一些公共的東西寫到一些基礎(chǔ)模塊中,供其他模塊去調(diào)用,這時(shí)會(huì)去import自定義的一些基礎(chǔ)模塊,然后來導(dǎo)入。
自己寫好了腳本,然后導(dǎo)入,導(dǎo)入的情況分為以下情況:
1. 運(yùn)行的模塊與需要調(diào)用自定義基礎(chǔ)模塊在同一文件夾下
2. 自定義模塊與所需要調(diào)用自定義模塊的文件不在同一文件夾下
一、同一文件夾下
這時(shí)的調(diào)用就較為簡(jiǎn)單了,直接導(dǎo)入即可
from deal_excel import copy_sheetWrite, row_commonWrite from deal_time import minus_date
但是這個(gè)時(shí)候在PyCharm中顯示的是報(bào)錯(cuò)
但是運(yùn)行程序是不會(huì)報(bào)錯(cuò)的

為了讓在PyCharm中不報(bào)錯(cuò),可以將包/文件夾設(shè)為 sources Root

現(xiàn)在就不報(bào)錯(cuò)了

在cmd命令中執(zhí)行也是成功的
![]()
如果在模塊前面加上包名(下面有個(gè)__init__.py)或者文件夾名
from msydwork.deal_excel import copy_sheetWrite, row_commonWrite from msydwork.deal_time import minus_date
PyCharm中顯示不報(bào)錯(cuò),運(yùn)行程序成功

但是在cmd命令中運(yùn)行卻是失敗的

所以對(duì)于處于同一文件夾下的情況:直接導(dǎo)入模塊;為了PyCharm中不報(bào)錯(cuò),將包/文件夾設(shè)為sources Root
二、處于不同文件夾下面
在PyCharm中是不會(huì)報(bào)錯(cuò)而且執(zhí)行成功,是由于將deal_excel、deal_time所在包設(shè)為sources Root:

這時(shí)在cmd命令中是執(zhí)行失敗的

在PyCharm中是不會(huì)報(bào)錯(cuò)而且執(zhí)行成功另外一種方法:導(dǎo)包時(shí)全路徑(可以不設(shè)sources Root)

這時(shí)在cmd命令中也是報(bào)錯(cuò)的

為了讓代碼在cmd命令中執(zhí)行成功,需要將自定義基礎(chǔ)模塊的文件夾/包添加到Python的庫(kù)路徑中。
三、找到本地庫(kù)的路徑,然后將文件拷進(jìn)去即可
拷貝到\Lib\site-packages中

PyCharm中是不會(huì)報(bào)錯(cuò)而且執(zhí)行成功

cmd命令中執(zhí)行成功
![]()
四、手動(dòng)給python添加搜索路徑
在python安裝目錄的\Lib\site-packages文件夾中建立一個(gè).pth文件,內(nèi)容為自己寫的庫(kù)絕對(duì)路徑

這個(gè)時(shí)候PyCharm中是會(huì)報(bào)錯(cuò)的,但是執(zhí)行是成功的

cmd命令是執(zhí)行成功的。
![]()
還有一種方法導(dǎo)入完整路徑:

將根目錄設(shè)為搜索路徑

這時(shí)候不管在PyCharm還是cmd執(zhí)行都是成功的
所以對(duì)于處于不同一文件夾下的情況:先手動(dòng)給python添加搜索路徑(根目錄),然后直接導(dǎo)入模塊全路徑;
在這里說一句Python的包搜索路徑
Python會(huì)在以下路徑中搜索它想要尋找的模塊:
1. 程序所在的文件夾
2. 標(biāo)準(zhǔn)庫(kù)的安裝路徑
3. 操作系統(tǒng)環(huán)境變量PYTHONPATH所包含的路徑
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
如何在 Matplotlib 中更改繪圖背景的實(shí)現(xiàn)
這篇文章主要介紹了如何在 Matplotlib 中更改繪圖背景的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-11-11
Python3.6+selenium2.53.6自動(dòng)化測(cè)試_讀取excel文件的方法
這篇文章主要介紹了Python3.6+selenium2.53.6自動(dòng)化測(cè)試_讀取excel文件的方法,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-09-09
Python實(shí)現(xiàn)電腦壁紙的采集與輪換效果
這篇文章主要為大家介紹了如何利用Python實(shí)現(xiàn)電腦壁紙的采集以及輪換效果,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)Python有一定幫助,需要的可以參考一下2022-04-04
使用Python的Supervisor進(jìn)行進(jìn)程監(jiān)控以及自動(dòng)啟動(dòng)
這篇文章主要介紹了使用Python的Supervisor進(jìn)行進(jìn)程監(jiān)控以及自動(dòng)啟動(dòng),使用python supervisor實(shí)現(xiàn),需要的朋友可以參考下2014-05-05
python?pyaudio音頻錄制的實(shí)現(xiàn)
這篇文章主要介紹了python?pyaudio音頻錄制的實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-05-05

