python中包與模塊以及包的發(fā)布操作岳服!

1.什么是包剂公?

為了更加友好的對python代碼進(jìn)行組織管理,python中出現(xiàn)了包和模塊的概念吊宋,類似生活中整理我們的物品一樣纲辽,將代碼按照不同的功能進(jìn)行整理整合颜武,可以很大程度提升代碼可讀性和代碼質(zhì)量领猾,方便在項(xiàng)目中進(jìn)行協(xié)同開發(fā)锉试!

(1.)包(pakcage)(文件夾):包含對個(gè)python文件/模塊的文件夾嵌巷,并且文件夾中有一個(gè)名稱為init.py的特殊聲明文件桐腌,那么這個(gè)文件夾就是一個(gè)包(模塊包)宵膨,可以將大量功能相關(guān)的python模塊包含起來同意管理簇爆,同樣也可以被其他模塊通過import關(guān)鍵字引入重復(fù)使用封裝的模塊和代碼耿芹!
(2.)包和文件夾的區(qū)分
pyhton中的包诚啃,就是一個(gè)包含了init.py文件的特殊文件夾 其可以有效的管理和組織python中的模塊
普通文件夾 其實(shí)也是一種最簡單的(人工約定)包怠硼!沒有通過init.py聲明的包那么強(qiáng)大9砑!

2.什么是模塊

模塊(module):pyhton中每個(gè)python文件就是一個(gè)模塊(模塊名稱就是文件名稱)香璃,每個(gè)python文件中这难,封裝類似功能的變量、函數(shù)葡秒、類型等等姻乓,可以被其他的python模塊通過import關(guān)鍵字引入重復(fù)使用!

如果說模塊是具備一定功能的工具
那么包就是一個(gè)包含很多工具眯牧、功能強(qiáng)大的工具箱

3.導(dǎo)入操作

import 和 from .. import
包和模塊的引入蹋岩,通常有兩個(gè)關(guān)鍵語法
import 包/模塊
from 包/模塊 import 具體對象
(1.)基本語法
import 模塊
使用模塊中的數(shù)據(jù)
模塊.變量
模塊.函數(shù)
模塊.類型
import方式可以引入包、模塊学少;
import引入的包和模塊會(huì)自動(dòng)從當(dāng)前文件夾中剪个、系統(tǒng)環(huán)境變量PYTHONPATH中、以及系統(tǒng)的sys.path路徑中查詢是否存在該名稱的包/模塊
如果不存在版确,就會(huì)出現(xiàn)錯(cuò)誤:no module named ‘xxxxxx’
(2.)from xx import 方式
基本語法:
from . import xxx 從當(dāng)前模塊路徑下禁偎,引入xxx模塊
from .. import xxx 從當(dāng)前模塊的父級路徑下,引入xxx模塊
from pkg import module 從pkg包中引入一個(gè)模塊module
from pkg.module import vars阀坏, func , clazz 從指定的模塊中直接引用
REMARK:from xx import 語法方式笆檀,主要是針對出現(xiàn)了包結(jié)構(gòu)的python代碼而特定的代碼引入方式忌堂,首先要非常明確代碼的組織結(jié)構(gòu)才能正確使用from import語法進(jìn)行代碼的引入和復(fù)用
REMARK2:通過上述代碼,可以看到form import語法區(qū)分為兩種操作
使用了./..的相對路徑的引入操作方式
直接使用包/模塊名稱的絕對引入操作方式
(3.)from import 的相對引入
首先酗洒,相對引入本身是相對當(dāng)前正在操作的文件的路徑
同一級路徑使用符號(hào): .
上一級路徑使用符號(hào):..
但是需要注意的是士修,一旦使用相對路徑,就要明確所謂相對路徑樱衷,是依賴他們所屬文件夾確定的棋嘲,就類似生活中的兄弟姐妹的稱謂一樣,是相對他們的父親來說的矩桂,

所以在包和模塊的相對引入時(shí)沸移,一定要切記,引入的路徑相對于當(dāng)前文件;執(zhí)行的路徑相對于引入的最外層文件夾雹锣,這樣才能正確的使用相對引入操作執(zhí)行我們的模塊代碼网沾!

(4.)from import 的絕對引入
絕對引入的操作方式比較直接,從最外層的包的源頭直接開始操作蕊爵;這種操作方式在第三方模塊的操作中是司空見慣的辉哥,但是在獨(dú)立的項(xiàng)目開發(fā)中使用較少!

4.包的發(fā)布

(1.)本地發(fā)布
在我們已經(jīng)開發(fā)好的一個(gè)包文件夾下攒射,創(chuàng)建一個(gè)python模塊:setup.py

模塊中定義如下內(nèi)容
# 引入構(gòu)建包信息的模塊
from distutils.core import setup
# 定義發(fā)布的包文件的信息
setup(
name=“damu_pkg01”,  # 發(fā)布的包文件名稱
version=”1.0”,   # 發(fā)布的包的版本序號(hào)
description=”我的測試包”, # 發(fā)布包的描述信息
author=”大牧莫邪”,   # 發(fā)布包的作者信息
author_email=”damu@163.com”, # 作者聯(lián)系郵箱信息
py_modules=[‘__init__.py’,’..’,..]# 發(fā)布的包中的模塊文件列表
)~~~
#####執(zhí)行當(dāng)前程序包文件的構(gòu)建操作命令:按照標(biāo)準(zhǔn)格式組織寶中的所有數(shù)據(jù)文件
python  setup.py  build
構(gòu)建完畢的文件:可以通過python  setup.py install 命令直接當(dāng)還曾第三方模塊進(jìn)行安裝
#####執(zhí)行命令進(jìn)行包的打包發(fā)布
python setup.py sdist
打包的文件醋旦,主要是方便進(jìn)行網(wǎng)絡(luò)傳輸,打包之后會(huì)在dist中創(chuàng)建包含中所有信息的 tar.gz 壓縮包文件会放;該文件就可以git等方式提交給對應(yīng)的開源組織發(fā)布你的自定義模塊了饲齐!
(2.)網(wǎng)絡(luò)發(fā)布
首先,進(jìn)入http://pypi.python.org/pypi網(wǎng)站上鸦概,注冊一個(gè)自己的賬號(hào)吧箩张! 這個(gè)網(wǎng)站是目前大部分python第三方模塊集中的一個(gè)管理社區(qū)平臺(tái)
其次,你已經(jīng)準(zhǔn)備好了你自己的pyhton程序包窗市,并在包中準(zhǔn)備好了setup.py文件       在setup.py中先慷,已經(jīng)定義好了程序包的所有描述信息
執(zhí)行打包命令:
pyhton setup.py  sdist
接下來  安裝第三方模塊:twine, 用于上傳我們打包的項(xiàng)目文件
pip  install twine
上傳項(xiàng)目
twine  upload dist/*
此時(shí)咨察,如果我們還需要我們自己開發(fā)的某個(gè)模塊的話论熙,直接通過pip命令安裝即可
pip  install  包名稱/模塊名稱!





















?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末摄狱,一起剝皮案震驚了整個(gè)濱河市脓诡,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌媒役,老刑警劉巖祝谚,帶你破解...
    沈念sama閱讀 216,372評論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異酣衷,居然都是意外死亡交惯,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,368評論 3 392
  • 文/潘曉璐 我一進(jìn)店門穿仪,熙熙樓的掌柜王于貴愁眉苦臉地迎上來席爽,“玉大人,你說我怎么就攤上這事啊片≈欢停” “怎么了?”我有些...
    開封第一講書人閱讀 162,415評論 0 353
  • 文/不壞的土叔 我叫張陵紫谷,是天一觀的道長齐饮。 經(jīng)常有香客問我捐寥,道長,這世上最難降的妖魔是什么沈矿? 我笑而不...
    開封第一講書人閱讀 58,157評論 1 292
  • 正文 為了忘掉前任上真,我火速辦了婚禮,結(jié)果婚禮上羹膳,老公的妹妹穿的比我還像新娘睡互。我一直安慰自己,他們只是感情好陵像,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,171評論 6 388
  • 文/花漫 我一把揭開白布就珠。 她就那樣靜靜地躺著,像睡著了一般醒颖。 火紅的嫁衣襯著肌膚如雪妻怎。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,125評論 1 297
  • 那天泞歉,我揣著相機(jī)與錄音逼侦,去河邊找鬼。 笑死腰耙,一個(gè)胖子當(dāng)著我的面吹牛榛丢,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播挺庞,決...
    沈念sama閱讀 40,028評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼晰赞,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了选侨?” 一聲冷哼從身側(cè)響起掖鱼,我...
    開封第一講書人閱讀 38,887評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎援制,沒想到半個(gè)月后戏挡,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,310評論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡晨仑,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,533評論 2 332
  • 正文 我和宋清朗相戀三年增拥,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片寻歧。...
    茶點(diǎn)故事閱讀 39,690評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖秩仆,靈堂內(nèi)的尸體忽然破棺而出码泛,到底是詐尸還是另有隱情,我是刑警寧澤澄耍,帶...
    沈念sama閱讀 35,411評論 5 343
  • 正文 年R本政府宣布噪珊,位于F島的核電站晌缘,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏痢站。R本人自食惡果不足惜磷箕,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,004評論 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望阵难。 院中可真熱鬧岳枷,春花似錦、人聲如沸呜叫。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽朱庆。三九已至盛泡,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間娱颊,已是汗流浹背傲诵。 一陣腳步聲響...
    開封第一講書人閱讀 32,812評論 1 268
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留箱硕,地道東北人拴竹。 一個(gè)月前我還...
    沈念sama閱讀 47,693評論 2 368
  • 正文 我出身青樓,卻偏偏與公主長得像颅痊,于是被迫代替她去往敵國和親殖熟。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,577評論 2 353

推薦閱讀更多精彩內(nèi)容