python包管理 關於python包管理

2021-10-21 04:52:10 字數 1512 閱讀 1099

有著41個物件(檔案或者資料夾)。

1)其中linester-1.0.0-py2.7.egg-info檔案 是安裝mynester跟yournester的資訊總結,

他們使用了python setup.py install 的安裝方式。(學會使用distutils發布包,見文章)

但是在linester-1.0.0-py2.7.egg-info檔案 中卻找不到任何關於mynester跟yournester的資訊。

這是python在distutils本身設計的缺陷。。

2)python標準庫中提供的distutils打包工具充斥了上述的種種問題,但由於它是一種標準,所以人們要麼繼續忍受並使用它,

或者轉向更先進的工具setuptools,它在distutils之上提供了一些高階特性。

另外還有distribute,它是setuptools的衍生版本。pip則是一種更為高階的安裝工具,它依賴於setuptools。

其中,easy_install是setuptools和distribute自帶的安裝指令碼,

也就是一旦 setuptools 或 distribute安裝完畢, easy_install 也便可用。。

現在setuptools已經停止維護了,基本上setuptools就是個名字,核心是distribute。

3)不過不論是setuptools\distribute還是基於setuptools的pip。這些都不是python官方想包容的標準。setuptools 和 distribute 的誕生是因為 distutils 的不濟, 進而導致目前分化的狀況.而 guido 並未接納 distribute 為官方標準, 並說明了原因. 開發者在失落之餘明確了新的方向和任務 – distutils2, 它將成為 python 3.3 的標準庫 packaging , 並在其它版本中以 distutils2 的身份出現; 換句話說, 它和 pip 將聯手結束目前混亂的狀況;

4)上述提到的41個物件,包括3個用distutils1安裝的nester檔案都能被pip freeze命令顯示。

c:\users\administrator>pip freeze -l

django==1.4.3

mysql-python==1.2.4b4

argparse==1.2.1

colorama==0.2.4

cx-freeze==4.3

linester==1.0.0 (包含了mynester和yournester)

requests==0.14.1

virtualenv==1.9.1

但有兩種包不能顯示出來,

乙個是setuptools,跟pip。。 因為他們本身就是pip一部分、、安裝pip之前一定安裝setuotools,因為pip基於setuptools

另乙個就是使用pth指向的wxpython包。見wx.pt**件

總結來說,現在2023年,就用pip, 摒棄setuptools和distribute,坐等distutils2。

-- 關於python包管理. by [email protected]

關於包管理器

開發乙個應用程式可能要用到許多第三方的庫,它們往往有依賴關係,處理不好容易導致衝突。使用包管理器是最常用的方法。1 conda conda是乙個多用途的包管理器 發行版為anaconda 是跨平台的,常用來管理python的包。它的最大優點是自動分析庫的依賴關係,並自動安裝需要的依賴庫。因此用pyt...

Python 包管理器

剛開始學習python時,在看文件和別人的blog介紹安裝包有的用easy install,setuptools,有的使用pip,distribute,那麼這幾個工具有什麼關係呢,看一下下面這個圖就明白了 可以看到distribute是setuptools的取代,pip是easy install的取...

Python包管理利器 pipenv

pipenv 是requests庫作者kenneth reitz開發的,它結合了pip及virtualenv的功能和優點,其目的是替代virtualenv和pyenv,將pip及virtualenv的功能集於一身。儘管 pip 可以安裝 python 包,但仍推薦使用pipenv,因為它是一種更高階...