日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學(xué)無先后,達(dá)者為師

網(wǎng)站首頁 編程語言 正文

Python?import自己的模塊報(bào)錯(cuò)問題及解決_python

作者:cacho_37967865 ? 更新時(shí)間: 2022-04-16 編程語言

在實(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)用就較為簡單了,直接導(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)行卻是失敗的

所以對于處于同一文件夾下的情況:直接導(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的庫路徑中。

三、找到本地庫的路徑,然后將文件拷進(jìn)去即可

拷貝到\Lib\site-packages中

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

cmd命令中執(zhí)行成功

四、手動(dòng)給python添加搜索路徑

在python安裝目錄的\Lib\site-packages文件夾中建立一個(gè).pth文件,內(nèi)容為自己寫的庫絕對路徑

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

cmd命令是執(zhí)行成功的。

還有一種方法導(dǎo)入完整路徑:

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

這時(shí)候不管在PyCharm還是cmd執(zhí)行都是成功的

所以對于處于不同一文件夾下的情況:先手動(dòng)給python添加搜索路徑(根目錄),然后直接導(dǎo)入模塊全路徑;

在這里說一句Python的包搜索路徑

Python會(huì)在以下路徑中搜索它想要尋找的模塊:

1. 程序所在的文件夾

2. 標(biāo)準(zhǔn)庫的安裝路徑

3. 操作系統(tǒng)環(huán)境變量PYTHONPATH所包含的路徑

原文鏈接:https://blog.csdn.net/sinat_37967865/article/details/103064424

欄目分類
最近更新