首頁 > 軟體

如何使用PIP管理Python包

2020-06-16 16:34:50

PIP是Python包管理器,用於安裝,升級,刪除用Python程式語言編寫的包。 在本指南中,我們將討論如何安裝pip和管理python包,例如使用pip安裝,更新和刪除包。 此外,我們將看到什麼是虛擬環境,如何建立它,以及如何使用venv和/或virtualenv工具隔離虛擬環境中的包。

使用包管理器安裝pip

在Arch Linux及其變體如Antergos,Manjaro Linux上,您可以使用命令安裝pip:

Python 2:

$ sudo pacman -S python2-pip python2-wheel python2-setuptools

Python 3:

$ sudo pacman -S python-pip python-wheel python-setuptools

Fedora 21上:

Python 2:

$ sudo yum upgrade python-setuptools

$ sudo yum install python-pip python-wheel

Python 3:

$ sudo yum install python3 python3-wheel

Fedora 22:

Python 2:

$ sudo dnf upgrade python-setuptools

$ sudo dnf install python-pip python-wheel

Python 3:

$ sudo dnf install python3 python3-wheel

要獲得更新版本的pip,setuptools和wheel for Python 2,請啟用PyPA CoprRepo?使用命令:

$ dnf copr enable pypa/pypa

然後執行:

$ sudo dnf upgrade python-setuptools

$ sudo dnf install python-pip python-wheel

CentOS/RHEL:

pip和wheel在CentOS和RHEL的預設儲存庫中不可用。 要在CentOS,RHEL,Scientific Linux和其他基於RPM的系統上安裝pip,請使用以下命令啟用EPEL儲存庫:

$ sudo yum install epel-release

然後執行以下命令來安裝pip:

$ sudo yum install python-pip

$ sudo yum install python-wheel

由於setup-tools軟體包在預設儲存庫中可用,因此您可以使用以下命令安裝它:

$ sudo yum upgrade python-setuptools

openSUSE:

Python 2:

$ sudo zypper install python-pip python-setuptools python-wheel

Python 3:

$ sudo zypper install python3-pip python3-setuptools python3-wheel

在ebian/Ubuntu:

Python 2.x:

$ sudo apt-get install python-pip

Python 3.x:

將“python”替換為“python3”以安裝Python 3.x版本。

$ sudo apt-get install python3-pip

在Ubuntu 12.04版本中,pip3沒有打包。 如果您使用的是Ubuntu 12.04,則可以使用以下命令安裝pip3:

$ sudo apt-get install python3-setuptools

$ sudo easy_install3 pip

從二進位制檔案安裝pip

如果你想從二進位制檔案安裝pip,只需執行:

$ wget https://bootstrap.pypa.io/get-pip.py

$ sudo python get-pip.py

請注意,get-pip.py還將安裝setuptools和wheel。 正如我之前提到的,一些Linux發行版沒有在核心儲存庫中使用。 在這種情況下,您可能需要新增一些第三方儲存庫,例如EPEL。

如果您使用從python.org下載的Python 2> = 2.7.9或Python 3> = 3.4二進位制檔案,則已經安裝了pip。 但是,您需要使用命令升級pip:

$ sudo pip install -U pip

或者

$ sudo pip install --upgrade pip

要更新所有(pip,setuptools,whell),請執行:

$ sudo pip install --upgrade pip setuptools wheel

要找到已安裝的pip/pip3版本,請執行:

$ pip --version

或者

$ pip -V

範例輸出將是:

pip 9.0.1 from /usr/lib/python2.7/dist-packages (python 2.7)

建立虛擬環境

在安裝任何python包之前,建議建立一個虛擬環境。為什麼我們需要建立虛擬環境?你可能會問。因為,Python“虛擬環境”允許我們在隔離的位置安裝Python包,而不是全域性安裝它。

我們假設您要安裝一個python包,例如youtube-dl,它需要LibFoo的版本1,但另一個應用程式需要版本2.您如何使用這兩個應用程式?如果您將所有內容安裝到/usr/lib/python2.7/site-packages或/usr/lib/python3.6/site-packages(或任何平台的標準位置),很容易在您遇到的情況下結束無意中升級了不應升級的應用程式。為避免這種情況,我們將虛擬環境中的軟體包隔離開來。所有虛擬環境都有自己的安裝目錄,不會相互互動或衝突。

我們可以使用兩個模組建立隔離的python環境,即:

1.venv,

2.virtualenv。

對於Python 2.x,您需要安裝virtualenv。為此,請執行:

$ sudo pip install virtualenv

現在讓我們建立一個虛擬環境。

使用virtualenv:

$ virtualenv <DIR_NAME>
$ source <DIR_NAME>/bin/activate

對於Python 3.x,您需要安裝venv。 在基於Ubuntu的系統上,您可以使用以下命令安裝它:

$ sudo apt-get install python3-venv

現在使用venv建立虛擬環境:

$ python3 -m venv <DIR_NAME>
$ source <DIR_NAME>/bin/activate

一旦執行上述命令,您將立即進入虛擬環境。

要停用虛擬環境並返回正常的shell,請執行:

$ deactivate

使用Pip管理Python包

現在我們將看到最常見的基本點使用範例。

要檢視所有pip命令和常規選項的列表,請執行:

$ pip

你應該看到類似下面的輸出。

要知道install命令的作用,請執行:

$ pip install --help

pip最常見的用法是從PyPi(Python Package Index)安裝?。 PyPi是一個儲存庫,包含Python開發人員社群建立的所有包。

安裝包

首先建立虛擬環境,如下所示:

使用virtualenv:

$ virtualenv MYENV

用您自己的名字替換MYENV。

使用venv:

$ python3 -m venv MYENV

最後,使用命令啟用它:

$ source MYENV/bin/activate

一旦您執行上述命令,您將被置於虛擬環境中:

現在,是時候安裝一些軟體包了。 要安裝軟體包,例如youtube-dl,請執行:

$ pip install youtube-dl

此命令將安裝youtube-dl及其所有依賴項。

要安裝特定版本,請執行:

$ pip install youtube_dl=2017.12.14

要安裝指定版本以外的版本,請執行:

$ pip install youtube_dl!=2017.12.14

注意等號前面的'!'。

要安裝等於或大於指定版本的版本,請執行:

$ pip install youtube_dl>=2017.12.14

要安裝特定範圍內的版本,例如大於或等於一個版本且小於另一個版本,請執行:

$ pip install youtube_dl>=2017.12.14, <2017.12.20

要安裝與某個版本“相容”的版本:

$ pip install youtube_dl~=2017.12.14

下載包

要下載包含所有依賴項的軟體包(不安裝它),請執行:

$ pip download youtube-dl

列出所有已安裝的包

要查詢由pip安裝的軟體包,請執行:

$ pip freeze

或者

$ pip list

這些命令將使用系統中的pip顯示所有已安裝的軟體包。

搜尋包

要搜尋特定的包,例如pycparser,請執行:

$ pip search pycparser

此命令將搜尋並顯示與字串“pycparser”匹配的結果。如下圖

更新包

要以簡單的表格列格式列出所有過時的包,請執行:

$ pip list --outdated --format=columns

要更新過時的包,請執行:

$ pip install --upgrade youtube-dl

我們還可以將所有包轉儲到一個檔案中,並一次性更新它們。 首先,將所有檔案匯出到檔案:

$ pip freeze > mypackages.txt

現在使用命令一次更新所有包:

$ pip install -r mypackages.txt --upgrade

或者

$ pip install -r mypackages.txt -U

如果上述命令因某種原因無效,請使用以下命令一次更新所有包:

$ pip freeze --local | grep -v '^e' | cut -d = -f 1 | xargs -n1 pip install -U

將所有已安裝的包匯出到檔案中

有時,您可能希望將所有已安裝的軟體包匯出到檔案中,以便在不同的環境中對其進行測試。 為此,請執行:

$ pip freeze > MYENV_packages.txt

現在,停用當前的虛擬環境:

$ deactivate

並建立一個新的使用命令:

$ virtualenv MYENV1

用您自己的名字替換MYENV1。

使用venv:

$ python3 -m venv MYENV1

啟用新建立的環境:

$ source MYENV1/bin/activate

現在,安裝我們之前匯出的所有包。

$ pip install -r MYENV_packages.txt

要在沒有使用者互動的情況下一次安裝,請執行:

$ pip install -r MYENV_packages.txt -y

同樣,您可以使用以下命令從列表中刪除所有包:

$ pip uninstall -r MYENV_packages.txt -y

檢視包資訊

要檢視包的詳細資訊,請執行:

linuxidc@linuxidc:~/www.linuxidc.com$ pip show networkx
Name: networkx
Version: 1.11
Summary: Python package for creating and manipulating graphs and networks
Home-page: http://networkx.github.io/
Author: Aric Hagberg
Author-email: hagberg@lanl.gov
License: BSD
Location: /usr/lib/python2.7/dist-packages
Requires:

檢視包依賴項

我們可以使用“pipdeptree”工具視覺化所有已安裝軟體包的依賴關係。

使用命令安裝它:

$ pip install pipdeptree

安裝後,您可以使用以下命令檢視依賴關係樹:

$ pipdeptree

解除安裝軟體包

要解除安裝/刪除已安裝的軟體包,請執行:

$ pip uninstall youtube-dl

要解除安裝多個包,請使用逗號分隔指定它們,如下所示:

$ pip uninstall package1, package2

要刪除使用pip安裝的所有python包,請執行:

$ pip freeze | xargs pip uninstall -y

有時pip不允許您解除安裝作業系統擁有的軟體包。 在這種情況下,您可以使用以下命令解除安裝作業系統不擁有的所有軟體包:

$ pip uninstall -y $(pip freeze | sed 's;==.*;;g' | tr 'n' ' ')

正如我在上一節中提到的,我們可以將所有已安裝的軟體包轉儲到一個檔案中,並使用以下命令從列表中解除安裝它們:

$ pip uninstall -r MYENV_packages.txt -y

在這個階段,您可能對pip及其用法有了一些了解。要了解更多細節,請執行以下命令檢視官方文件和pip幫助部分

$ pip --help

要不就,

$ pip


IT145.com E-mail:sddin#qq.com