python 包管理和virturlenv

2022-09-16 01:54:12 字數 2224 閱讀 8802

python當前的包管理工具鏈是 easy_install/pip + distribute/setuptools + distutils,顯得較為混亂。

而將來的工具鏈組合非常簡單:pip + distutils2。

1、distutils:python 自帶的基本安裝工具,適用於非常簡單的應用場景,使用:

2、setuptools:針對 distutils 做了大量擴充套件,尤其是加入了包依賴機制,在部分 python 子社群已然是事實上的標準。

3、distribute:由於 setuptools 開發進度緩慢,不支援 python 3,**混亂,一幫程式設計師另起爐灶,重構**,增加功能,希望能夠取代 setuptools 並被接納為官方標準庫,他們非常努力,在很短的時間便讓社群接受了 distribute。

4、easy_install:setuptools 和 distribute 自帶的安裝指令碼,也就是一旦 setuptools 或 distribute 安裝完畢,easy_install 也便可用。最大的特點是自動查詢 python 官方維護的包源 pypi,安裝第三方 python 包非常方便。使用:

5、distutils2:setuptools 和 distribute 的誕生是因為 distutils 的不濟,進而導致目前分化的狀況。而 guido 並未接納 distribute 為官方標準,並說明了原因。它將成為 python 3.3 的標準庫 packaging,並在其它版本中以 distutils2 的身份出現。換句話說,它和 pip 將聯手結束目前混亂的狀況。

6、pip 是 easy_install 的乙個替換品。pip 的安裝需要setuptools 或者 distribute,distribute是setuptools的取代(setuptools包後期不再維護了),如果你使用的是python3.x那麼就只能使用distribute因為python3.x不支援setuptools。

下面來看一下pip的使用:

安裝特定版本的package,通過使用==, >=, <=, >, 《來指定乙個版本號,例如安裝markdown包:

pip install

'markdown<2.0

'pip

install

'markdown>2.0,<2.0.3

'

包的安裝路徑:/usr/local/lib/python2.7/dist-packages。

公升級包到當前最新的版本,可以使用-u 或者 --upgrade

pip install -u markdown

解除安裝包

pip uninstall markdown

查詢包

pip search "

multiprocessing

"

列出安裝的packages

pip freeze

在開發python應用程式的時候,系統安裝的python只有乙個版本。所有第三方的包都會被pip安裝到python的site-packages目錄下。

如果我們要同時開發多個應用程式,那這些應用程式都會共用乙個python,如果應用a需要jinja 2.7,而應用b需要jinja 2.6怎麼辦?

這種情況下,每個應用可能需要各自擁有一套「獨立」的python執行環境。virtualenv就是用來為乙個應用建立一套「隔離」的python執行環境。

假定我們要開發乙個新的專案,需要一套獨立的python執行環境,可以在專案目錄下執行下面的命令:

virtualenv --no-site-packages venv

virtualenv命令建立乙個獨立的python執行環境,引數--no-site-packages 表示已經安裝到系統python環境中的所有第三方包都不會複製過來,這樣,我們就得到了乙個不帶任何第三方包的「乾淨」的python執行環境。

新建的python環境被放到當前目錄下的venv目錄。有了venv這個python環境,可以用source命令進入該環境:

source venv/bin/activate

在venv環境下,用pip安裝的包都被安裝到venv這個環境下,系統python環境不受任何影響。也就是說,venv環境是專門針對myproject這個應用建立的。

退出當前的venv環境,使用deactivate命令:

deactivate

python包管理 關於python包管理

有著41個物件 檔案或者資料夾 1 其中linester 1.0.0 py2.7.egg info檔案 是安裝mynester跟yournester的資訊總結,他們使用了python setup.py install 的安裝方式。學會使用distutils發布包,見文章 但是在linester 1....

liunx RPM包管理和原始碼包管理

rpm 原red hat package manager,現在是乙個遞迴縮寫 由 red hat 公司提出,被眾多 linux 發行版所採用,最大的特點就是其無需編譯,可以直接使用,但是其無法進行個人設定,開關功能。下面是rpm包示例 zip 3.0 11.el7.x86 64.rpm zip軟體包...

python虛擬環境和包管理

python m venv 虛擬環境名 win 虛擬環境名 scripts activate.bat mac linux source 虛擬環境名 bin activate pip install 包名 pip freeze requirements.txt pip install r requir...