Python import自己的模塊報(bào)錯(cuò)問(wèn)題及解決
在實(shí)際使用python時(shí),我們會(huì)將一些公共的東西寫到一些基礎(chǔ)模塊中,供其他模塊去調(diào)用,這時(shí)會(huì)去import自定義的一些基礎(chǔ)模塊,然后來(lái)導(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)入模塊全路徑;
在這里說(shuō)一句Python的包搜索路徑
Python會(huì)在以下路徑中搜索它想要尋找的模塊:
1. 程序所在的文件夾
2. 標(biāo)準(zhǔn)庫(kù)的安裝路徑
3. 操作系統(tǒng)環(huán)境變量PYTHONPATH所包含的路徑
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python OS系統(tǒng)解決路徑中空格原因?qū)е挛募虿婚_的問(wèn)題
這篇文章主要介紹了Python OS系統(tǒng)解決路徑中空格原因?qū)е挛募虿婚_的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-02-02Python正則表達(dá)式?r'(.*)?are?(.*?)?.*'的深入理解
日常的開發(fā)工作中經(jīng)常會(huì)有處理字符串的需求,簡(jiǎn)單的字符串處理,我們使用python內(nèi)置的字符串處理函數(shù)就可以了,但是復(fù)雜的字符串匹配就需要借助正則表達(dá)式了,這篇文章主要給大家介紹了關(guān)于Python正則表達(dá)式?r‘(.*)?are?(.*?)?.*‘的相關(guān)資料,需要的朋友可以參考下2022-07-07常用python爬蟲庫(kù)介紹與簡(jiǎn)要說(shuō)明
本文介紹了一些常用的python爬蟲庫(kù)其中包括python網(wǎng)絡(luò)庫(kù),python網(wǎng)絡(luò)爬蟲框架,python HTML解析,python文本處理,python 自然語(yǔ)言處理,python 瀏覽器模擬等各種常用的python庫(kù)2020-01-01Python企業(yè)編碼生成系統(tǒng)總體系統(tǒng)設(shè)計(jì)概述
這篇文章主要介紹了Python企業(yè)編碼生成系統(tǒng)總體系統(tǒng)設(shè)計(jì),簡(jiǎn)單描述了Python企業(yè)編碼生成系統(tǒng)的功能、結(jié)構(gòu)與相關(guān)編碼實(shí)現(xiàn)技巧,需要的朋友可以參考下2019-07-07Pytorch實(shí)現(xiàn)常用乘法算子TensorRT的示例代碼
pytorch 用于訓(xùn)練,TensorRT用于推理是很多AI應(yīng)用開發(fā)的標(biāo)配。大家往往更加熟悉 pytorch 的算子,而不太熟悉TensorRT的算子。本文介紹了Pytorch中常用乘法的TensorRT實(shí)現(xiàn),感興趣的可以了解一下2022-06-06Python?pandas中apply函數(shù)簡(jiǎn)介以及用法詳解
apply()函數(shù)是pandas里面所有函數(shù)中自由度最高的函數(shù), apply()函數(shù)的參數(shù)是一個(gè)函數(shù)指針,這里可以使用lambda表達(dá)式幫助簡(jiǎn)化代碼,下面這篇文章主要給大家介紹了關(guān)于Python?pandas中apply函數(shù)簡(jiǎn)介以及用法的相關(guān)資料,需要的朋友可以參考下2022-09-09