python之本地模塊/包使用和創(chuàng)建

image.png

模塊

模塊實質(zhì)上就是一個python文件。

它是用來組織代碼的鹏氧,文件名其實就是模塊名.

例如hello.py hello就是模塊的名稱.

包(package)醇滥,本質(zhì)來說就是一個文件夾,但是其中有一個init.py文件斩郎。

包是從邏輯上來組織模塊的,也就是說它是用來存放模塊的喻频,如果想導(dǎo)入其他目錄下的模塊缩宜,那么這個目錄必須是一個包才可以導(dǎo)入。

使用第三方的包的方法

一般情況下使用pip安裝第三方包:

安裝新包: pip install xxxx
卸載已安裝的包:pip uninstall xxxx
更新已安裝的包: easy_install install xxxx -U
查看已安裝的包: pip list

python項目

一個完整的結(jié)構(gòu)需要滿足以下的條件:

  1. 擁有一個在版本管理之下的源碼目錄
  2. 程序信息在setup.py中定義
  3. 在一個virtualenv環(huán)境中運行

如何制作自己的安裝包

如何讓自己寫的包能被人當(dāng)作第三方庫安裝甥温?
首先了解下什么是setuptools?

什么是setuptools

setuptools是Python distutils增強版的集合锻煌,它可以幫助我們更簡單的創(chuàng)建和分發(fā)Python包,尤其是擁有依賴關(guān)系的窿侈。用戶在使用setuptools創(chuàng)建的包時炼幔,并不需要已安裝setuptools,只要一個啟動模塊即可史简。

使用時使用import setuptools導(dǎo)入即可.

image.png

image.png
第一步:創(chuàng)建代碼和文件夾

mytest目錄下創(chuàng)建代碼__init__.py

def add(x,y):
    return x+y

def main():
    pass

if __name__ == '__main__':
    main()
第二步:創(chuàng)建setup.py

mytest文件夾同級目錄下創(chuàng)建一個setup.py:

from setuptools import setup

setup(
    name = 'mytest',
    version = '0.1',
    author = 'BYManbu',
    packages = ['mytest'],
)

使用命令檢測setup.py是否語法正確:

$ python setup.py check
image.png

語法有誤,繼續(xù)修改......

修改后:

from setuptools import setup

setup(
    name = 'mytest',
    version = '0.1',
    author = 'BYManbu',
    author_email = 'bymanbu@126.com',
    url = 'https://pypi.org/help/',
    packages = ['mytest'],
)

ok, 這次順利通過檢測.O(∩_∩)O

打包目錄
使用命令進行打包:

python setup.py bdist_egg

打包前:


image.png

打包后:

image.png
第三步:安裝install
python setup.py install

驗證下是否安裝成功:


image.png

ok, 這樣就可以在本地使用了.O(∩_∩)O

當(dāng)然也可以上傳PyPI讓其他人使用.

本地不安裝使用包

對于python程序來說,有個環(huán)境變量sys.path的概念.

sys.path中記錄這python使用包時候搜索的路徑
可以打印sys.path查看:

其中/usr/local/lib/python2.7/dist-packages/mytest-0.1-py2.7.egg就是剛才我們安裝的自定義庫.O(∩_∩)O

如何使用未安裝的庫?

使用本地的包(不經(jīng)過安裝的),需要執(zhí)行如下步驟:

  1. import sys
  2. 添加sys.path.append(包的絕對路徑)

參考

Python的模塊引用和查找路徑
Python學(xué)習(xí)筆記十_模塊乃秀、第三方模塊安裝、模塊導(dǎo)入
(轉(zhuǎn))為Python添加默認模塊搜索路徑
第三章:python項目的結(jié)構(gòu)和包的創(chuàng)建
導(dǎo)入他人寫的Python包&創(chuàng)建自己的Python包
如何創(chuàng)建自己的python包
如何將自己的Python程序打包--setuptools詳解
Python環(huán)境變量PYTHONPATH設(shè)置圆兵、導(dǎo)入第三方模塊

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末跺讯,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子殉农,更是在濱河造成了極大的恐慌刀脏,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,122評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件超凳,死亡現(xiàn)場離奇詭異愈污,居然都是意外死亡耀态,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,070評論 3 395
  • 文/潘曉璐 我一進店門暂雹,熙熙樓的掌柜王于貴愁眉苦臉地迎上來首装,“玉大人,你說我怎么就攤上這事杭跪∠陕撸” “怎么了?”我有些...
    開封第一講書人閱讀 164,491評論 0 354
  • 文/不壞的土叔 我叫張陵涧尿,是天一觀的道長系奉。 經(jīng)常有香客問我,道長姑廉,這世上最難降的妖魔是什么缺亮? 我笑而不...
    開封第一講書人閱讀 58,636評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮桥言,結(jié)果婚禮上瞬内,老公的妹妹穿的比我還像新娘。我一直安慰自己限书,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,676評論 6 392
  • 文/花漫 我一把揭開白布章咧。 她就那樣靜靜地躺著倦西,像睡著了一般。 火紅的嫁衣襯著肌膚如雪赁严。 梳的紋絲不亂的頭發(fā)上扰柠,一...
    開封第一講書人閱讀 51,541評論 1 305
  • 那天,我揣著相機與錄音疼约,去河邊找鬼卤档。 笑死,一個胖子當(dāng)著我的面吹牛程剥,可吹牛的內(nèi)容都是我干的劝枣。 我是一名探鬼主播,決...
    沈念sama閱讀 40,292評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼织鲸,長吁一口氣:“原來是場噩夢啊……” “哼舔腾!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起搂擦,我...
    開封第一講書人閱讀 39,211評論 0 276
  • 序言:老撾萬榮一對情侶失蹤稳诚,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后瀑踢,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體扳还,經(jīng)...
    沈念sama閱讀 45,655評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡才避,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,846評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了氨距。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片桑逝。...
    茶點故事閱讀 39,965評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖衔蹲,靈堂內(nèi)的尸體忽然破棺而出肢娘,到底是詐尸還是另有隱情,我是刑警寧澤舆驶,帶...
    沈念sama閱讀 35,684評論 5 347
  • 正文 年R本政府宣布橱健,位于F島的核電站,受9級特大地震影響沙廉,放射性物質(zhì)發(fā)生泄漏拘荡。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,295評論 3 329
  • 文/蒙蒙 一撬陵、第九天 我趴在偏房一處隱蔽的房頂上張望珊皿。 院中可真熱鬧,春花似錦巨税、人聲如沸蟋定。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,894評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽驶兜。三九已至,卻和暖如春远寸,著一層夾襖步出監(jiān)牢的瞬間抄淑,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,012評論 1 269
  • 我被黑心中介騙來泰國打工驰后, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留肆资,地道東北人。 一個月前我還...
    沈念sama閱讀 48,126評論 3 370
  • 正文 我出身青樓灶芝,卻偏偏與公主長得像郑原,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子夜涕,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,914評論 2 355

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