0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Python之包管理工具快速入門

馬哥Linux運維 ? 來源:未知 ? 作者:鄧佳佳 ? 2018-02-26 15:34 ? 次閱讀

前言

Python環(huán)境中已經(jīng)有很多成熟的包,可以通過安裝這些包來擴展我們的程序。

例如,很多時候Python開發(fā)人員都會去PyPI網(wǎng)站去查找自己想要使用的包,然后進行安裝。PyPI ( Python Package Index)是獲得第三方 Python 軟件包以補充標準庫的一個站點。

在安裝Python包的過程中,經(jīng)常涉及到distutils、setuptools、distribute、setup.py、easy_install、easy_install和pip等等。

突然對Python的包管理凌亂了,這些工具關(guān)系是什么,應(yīng)該怎么去選擇使用?

下面就簡單介紹下Python包管理相關(guān)的一些內(nèi)容。

Python包管理工具

這么多的Python包管理工具,剛開始接觸Python時會有點不知如何選擇。其實,當(dāng)查過Python的官方文檔之后,慢慢就理清了這些工具之間的關(guān)系了,也就沒有這么混亂了。

下面就分別對Python中的包管理工具進行簡單的介紹。

distutils

distutils 是 python 標準庫的一部分,這個庫的目的是為開發(fā)者提供一種方便的打包方式, 同時為使用者提供方便的安裝方式。

我們經(jīng)常使用的setup.py就是基于distutils實現(xiàn)的,然后通過setup.py就可以進行打包或者安裝了。

看一個簡單的例子,找一個目錄創(chuàng)建三個文件foo.py、bar.py和setup.py,其中setup.py的內(nèi)容如下:

from distutils.core import setup setup( name='fooBar', version='1.0', author='Will', author_email='wilber@sh.com', url='http://www.cnblogs.com/wilber2013/', py_modules=['foo', 'bar'], )

然后,在該目錄中運行python setup.py sdist,會得到以下輸出,同時生成了一個"fooBar-1.0.zip"包。

Python之包管理工具快速入門

使用者就可以解壓縮這個包然后執(zhí)行python setup.py install進行安裝,然后就可以使用foo、bar這兩個模塊了:

Python之包管理工具快速入門

關(guān)于更過如何編寫setup.py的內(nèi)容,請自行參閱Python官方文檔中的setupscript部分。

setuptools 和 distribute

setuptools是對 distutils 的增強,尤其是引入了包依賴管理。我們可以通過ez_setup.py來安裝setuptools。

至于distribute,它是setuptools的一個分支版本。分支的原因是有一部分開發(fā)者認為 setuptools 開發(fā)太慢。但現(xiàn)在,distribute 又合并回了 setuptools 中,所以可以認為它們是同一個東西。

前面看到setup.py可以創(chuàng)建一個壓縮包,而setuptools使用了一種新的文件格式(.egg),可以為Python包創(chuàng)建 egg文件。setuptools 可以識別.egg文件,并解析、安裝它

easy_install

當(dāng)安裝好setuptools/distribute之后,我們就可以直接使用easy_install這個工具了:

1.從PyPI上安裝一個包:當(dāng)使用easy_install package命令后,easy_install 可以自動從 PyPI 上下載相關(guān)的包,并完成安裝,升級

2.下載一個包安裝:通過easy_install package.tgz命令可以安裝一個已經(jīng)下載的包

3.安裝egg文件:通過easy_install package.egg可以安裝一個egg格式的文件

通過easy_install --help命令可以獲取該命令相關(guān)的幫助提示:

Python之包管理工具快速入門

根據(jù)上面的分析,可以看到setuptools/distribute和easy_install之間的關(guān)系:

*setuptools/distribute 都擴展了 distutils,提供了更多的功能

*easy_install是基于setuptools/distribute的一個工具,方便了包的安裝和省級

pip

pip是目前最流行的Python包管理工具,它被當(dāng)作easy_install的替代品,但是仍有大量的功能建立在setuptools之上。

easy_install 有很多不足:安裝事務(wù)是非原子操作,只支持 svn,沒有提供卸載命令, 安裝一系列包時需要寫腳本。pip 解決了以上問題,已經(jīng)成為新的事實標準。

pip的使用非常簡單,并支持從任意能夠通過 VCS 或瀏覽器訪問到的地址安裝 Python 包:

*安裝:pip install SomePackage

*卸載:pip uninstall SomePackage

文章的下面部分就重點介紹一下pip相關(guān)的內(nèi)容。

使用pip

在大家使用Python中,推薦使用pip進行Python包管理,pip的安裝和使用都比較方便。

pip安裝

pip的安裝有兩種常用的方式:

1.下載get-pip.py文件,然后執(zhí)行python get-pip.py進行安裝(如果沒有安裝setuptools,那么get-pip.py會幫忙安裝)

2.現(xiàn)在pip源碼包,然后通過setup.py進行安裝

pip常用命令

對于pip,最常用的肯定還是pip --help,通過幫助文檔,就可以大概知道如何使用命令和參數(shù)。

pip常用命令集合:

總結(jié)

本文介紹了Python的各個包管理工具之間的關(guān)系,相信通過這篇文章的介紹,就不會再對distutils、setuptools、distribute、setup.py、easy_install、easy_install和pip等等名詞感覺混亂了。

大致了解這些Python包管理工具后,大家應(yīng)該也清楚了怎么選擇和使用。

本文沒有涉及如何制作并發(fā)布一個Python包,感興趣的同學(xué)可以去Python官網(wǎng)上查查。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • python
    +關(guān)注

    關(guān)注

    56

    文章

    4801

    瀏覽量

    84849

原文標題:Python之包管理工具快速入門

文章出處:【微信號:magedu-Linux,微信公眾號:馬哥Linux運維】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    Linux環(huán)境下如何管理Python包管理工具

    Linux環(huán)境下,需要對軟件包進行安裝、卸載、升級和查詢等操作,包含這些操作的工具,稱為包管理工具
    發(fā)表于 08-22 15:14 ?669次閱讀
    Linux環(huán)境下如何<b class='flag-5'>管理</b><b class='flag-5'>Python</b><b class='flag-5'>包管理工具</b>

    77.077 包管理工具 npm搜索包

    模塊管理工具
    充八萬
    發(fā)布于 :2023年07月21日 04:33:37

    75.075 包管理工具 npm介紹與安裝

    模塊管理工具
    充八萬
    發(fā)布于 :2023年07月21日 04:52:00

    81.081 包管理工具 npm全局安裝

    模塊管理工具
    充八萬
    發(fā)布于 :2023年07月21日 04:56:35

    93.093 包管理工具 包管理工具擴展介紹

    管理工具
    充八萬
    發(fā)布于 :2023年07月21日 05:03:29

    89.089 包管理工具 yarn的介紹與操作

    代碼管理工具
    充八萬
    發(fā)布于 :2023年07月21日 05:13:49

    90.090 包管理工具 npm與yarn的選擇

    代碼管理工具
    充八萬
    發(fā)布于 :2023年07月21日 05:17:16

    92.092 包管理工具 npm包的更新與刪除

    代碼管理工具
    充八萬
    發(fā)布于 :2023年07月21日 05:18:25

    NPM的nodejs官方包管理工具詳解

    NPM:nodejs官方包管理工具的簡介、安裝、使用方法詳細攻略
    發(fā)表于 12-25 10:46

    Linux的進程管理工具Supervisor

    Linux進程管理工具Supervisor
    發(fā)表于 06-12 10:58

    請問一下golang包管理工具dep怎么使用?

    請問一下golang包管理工具dep怎么使用?
    發(fā)表于 06-15 09:06

    CANopen網(wǎng)絡(luò)管理工具 V1.18

    CANopen網(wǎng)絡(luò)管理工具 V1.18 網(wǎng)絡(luò)管理工具
    發(fā)表于 11-15 17:12 ?75次下載

    目前接口管理工具有哪些_接口管理工具作用是什么

    接口文檔管理工具是一個在線API文檔系統(tǒng),致力于快速解決團隊內(nèi)部接口文檔的編寫,和減少團隊協(xié)作開發(fā)的溝通成本。作為一個后端程序員,和前端對接時總是需要寫冗雜繁瑣的接口文檔,不僅效率低且溝通成本也高
    發(fā)表于 01-04 16:00 ?8635次閱讀

    Python 包管理工具解惑

    一、困惑作為一個 Python 初學(xué)者,我在包管理上感到相當(dāng)疑惑(嗯,是困惑)。主要表現(xiàn)在下面幾個方面:這幾個包管理工具
    發(fā)表于 04-02 14:41 ?396次閱讀

    如何安裝Python包管理工具

    第三方庫,Python提供了一些強大的包管理工具。本文將介紹如何安裝Python包管理工具,以便您能夠在Python項目中方便地
    的頭像 發(fā)表于 04-14 12:10 ?1159次閱讀