python管理包路徑之pycharm自動(dòng)解決包路徑注冊(cè)
簡(jiǎn)介
- Python 是一個(gè)高層次的結(jié)合了解釋性、編譯性、互動(dòng)性和面向?qū)ο蟮哪_本語(yǔ)言。你可以將它理解成腳本語(yǔ)言,大多情況我也是將它作為寫(xiě)腳本工具的一個(gè)方式。
- python 目前存在 python2 和 python3 兩個(gè)大版本,至于他們的區(qū)別我們沒(méi)必要深究,很多新的特性都是在 python3 中引入的,另外 python2 已經(jīng)停止維護(hù)了,所以該選擇誰(shuí)你應(yīng)該清楚了。
模塊化
- 我們?cè)趯W(xué)習(xí)一門(mén)語(yǔ)言的時(shí)候可以將所有的 demo 放在同一個(gè)文件夾,這樣方便相互查找,但是在企業(yè)級(jí)的項(xiàng)目中往往會(huì)出現(xiàn)很多功能,正常會(huì)根據(jù)功能進(jìn)行分包管理,在大的項(xiàng)目中更有可能分模塊管理,不管是分包還是分模塊都需要注意一個(gè)問(wèn)題就是如何引用的問(wèn)題, python 會(huì)默認(rèn)在當(dāng)前腳本所在文件夾下尋找所需模塊,如果當(dāng)前沒(méi)有會(huì)去其他系統(tǒng)管理模塊的地方進(jìn)行尋找,很明顯我們自己的分包分模塊的自然不會(huì)被找到,這就需要我們進(jìn)行相應(yīng)的處理。
- 不僅僅是 python 語(yǔ)言中, 模塊這個(gè)概念是凌駕于語(yǔ)言之上,大體上應(yīng)該分為三類(lèi)
- 內(nèi)置模塊 , 在 python中我們可以通過(guò)
help('modules')
來(lái)查看所有的內(nèi)置模塊
- - 第三方模塊 , 就是別人封裝的工具 ,python中可以通過(guò) `pip install` , Java中通過(guò) Maven管理安裝。
- - 剩下的就是我們自定義模塊了,不是所有牛奶都是特侖蘇,也不是所有人封裝的都叫做第三方模塊,我們個(gè)人的封裝局限很大僅使用我們自己的項(xiàng)目。
模塊導(dǎo)入
模塊導(dǎo)入也很方便,除了第三方模塊我們需要 通過(guò)包管理工具安裝一下才能導(dǎo)入,其他模塊我們都可以直接導(dǎo)入。
import module_a
: 導(dǎo)入module_a 模塊from module_b import module_b_child
: 從 module_b 導(dǎo)入他的方法或者導(dǎo)入他的子模塊import module_c as tom_util
: 重命名導(dǎo)入的模塊from module_tom import *
: 導(dǎo)入module_tom下所有模塊
- 現(xiàn)在項(xiàng)目中存在兩個(gè)目錄分別為
core
、user
, core 目錄中存在的token_util.py
是我們獲取 web 開(kāi)發(fā)中登錄 token的, 而 user 目錄下則是管理用戶的腳本,這個(gè)時(shí)候 user_util.py 依賴與 token_util.py ,那么我們就需要import token_util
。
- 果不其然出現(xiàn)了經(jīng)典的
No module named 'token_util'
, 上面我已經(jīng)說(shuō)了他只會(huì)去尋找默認(rèn)當(dāng)前路徑和系統(tǒng)模塊路徑的,更換項(xiàng)目結(jié)構(gòu)是不可能的,那么我們?cè)撊绾我?token_util 呢 ?
?import sys ?print(sys.path) ?sys.path.append('../core') ?import token_util
- 通過(guò)
sys
模塊將 module 模塊管理路徑打印就能發(fā)現(xiàn)只有全局的和當(dāng)前路徑,我們可以將我們需要引入的包的路徑注冊(cè)到模塊管理路徑中,這樣我們就可以引用了。
包
- 上面導(dǎo)入自定義模塊顯得很麻煩,隨著項(xiàng)目成長(zhǎng)會(huì)分很多文件夾用來(lái)表示不同功能,這里文件夾就是包的概念。但是文件夾和包還是不太一樣的。只需要在文件夾下存在一個(gè)
__init__.py
就會(huì)變成包了。 這個(gè)文件就是你在調(diào)用包中模塊是自動(dòng)調(diào)用,這個(gè)文件內(nèi)容可以為空哦 - 好像有了包的概念還是解決不了上面手動(dòng)導(dǎo)入的問(wèn)題,沒(méi)錯(cuò)這里始終逃不掉需要手動(dòng)導(dǎo)入的,我們可以將項(xiàng)目的根路徑導(dǎo)入到系統(tǒng)路徑中,這樣我們?cè)趯?dǎo)入模塊是只需要從根路徑出發(fā)導(dǎo)入即可。
- 我們可以寫(xiě)個(gè)腳本獲取跟路徑并注冊(cè)到系統(tǒng)路徑中
?import os ?import sys ?base_dir=os.path.dirname(os.path.dirname(os.path.dirname(os.path.dirname(os.pa ?th.dirname(os.path.abspath(__file__)))))) # 取到路 ?徑/Users/alex/Documents/work/PyProjects/py8days_camp ?print(base_dir) ?sys.path.append(base_dir) # 添加到sys.path?
- 如果你還是覺(jué)得麻煩,不用擔(dān)心
pycharm
會(huì)幫助我們解決這個(gè)問(wèn)題,我們通過(guò)pycharm
打開(kāi)項(xiàng)目時(shí)會(huì)自動(dòng)將項(xiàng)目的跟路徑注冊(cè)到系統(tǒng)路徑中。就像Idea 打開(kāi)Java項(xiàng)目自動(dòng)會(huì)管理 Package 空間一樣,
到此這篇關(guān)于python本管理包路徑之pycharm自動(dòng)解決包路徑注冊(cè)的文章就介紹到這了,更多相關(guān)pycharm解決包路徑注冊(cè)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
對(duì)于Python的框架中一些會(huì)話程序的管理
這篇文章主要介紹了對(duì)于Python的框架中一些會(huì)話程序的管理,會(huì)話的實(shí)現(xiàn)是Python框架的基本功能,本文主要講述了對(duì)其的一些管理維護(hù)要點(diǎn),需要的朋友可以參考下2015-04-04Python實(shí)現(xiàn)哲學(xué)家就餐問(wèn)題實(shí)例代碼
這篇文章主要給大家介紹了關(guān)于Python實(shí)現(xiàn)哲學(xué)家就餐問(wèn)題的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-11-11Gradio構(gòu)建交互式Python應(yīng)用使用示例詳解
這篇文章主要為大家介紹了Gradio構(gòu)建交互式Python應(yīng)用使用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-12-12Python3.x爬蟲(chóng)下載網(wǎng)頁(yè)圖片的實(shí)例講解
今天小編就為大家分享一篇Python3.x爬蟲(chóng)下載網(wǎng)頁(yè)圖片的實(shí)例講解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-05-05python使用pandas實(shí)現(xiàn)Excel轉(zhuǎn)換為CSV文件
在數(shù)據(jù)處理和分析中,我們經(jīng)常需要將 Excel 文件轉(zhuǎn)換為 CSV 格式,這篇文章我們主要來(lái)介紹一下python如何使用pandas實(shí)現(xiàn)Excel轉(zhuǎn)換為CSV文件,希望對(duì)大家有所幫助2024-10-10