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