如何使用Pip管理Python软件包

PIP是python软件包管理器,用于安装,更新和删除以Python编程语言编写的软件包。 在本教程中,我们将讨论如何安装pip和管理python软件包,例如使用pip安装,更新和删除软件包。 我们还将看到什么是虚拟环境,如何创建虚拟环境以及如何使用venv和/或virtualenv工具在虚拟环境中隔离软件包。 让我们谈正事吧。

安装

使用软件包管理器安装pip

Arch Linux 及其变体,例如 安特哥斯Manjaro Linux,您可以使用以下命令安装pip:

Python 2:

sudo pacman -S python2-pip

Python 3:

sudo pacman -S python-pip

在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

要为Python 2获取更新版本的pip,Setuptools和wheel,请使用以下命令启用PyPA COPR Repo:

dnf copr enable pypa/pypa

然后运行:

sudo dnf upgrade python-setuptools
sudo dnf install python-pip python-wheel

在CentOS / RHEL上:

在默认的CentOS和RHEL存储库中,pip和wheel不可用。 要在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

Debian / Ubuntu

sudo apt-get install python-pip

对于Python 3,将“ python”替换为“ python3”。

Ubuntu 12.04中没有PIP3版本。 如果使用的是Ubuntu 12.04,则可以使用以下命令安装PIP3:

sudo apt-get install python3-setuptools
sudo easy_install3 pip

从二进制安装点

如果要从二进制文件安装pip,请运行:

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

请注意,get-pip.py也会安装Setuptools。 正如我们前面提到的,一些Linux发行版在主要存储库中并不完善。 在这种情况下,可能有必要添加多个第三方存储库,例如EPEL。

如果您正在使用Python,则已经安装了pip 2> = 2.7.9 或Python 3> = 3.4 从python.org下载的二进制文件。 但是,您将需要使用以下命令来升级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/python3.6/site-packages (python 3.6)

创建虚拟环境

在安装任何pyton软件包之前,建议创建一个虚拟环境。 您可能会问,为什么我们需要创建一个虚拟环境? 因为“虚拟环境”允许您将Python软件包安装在孤立的位置,而不是全局安装。

假设您要为LibFoo的版本1安装类似YouTube的Python软件包,但另一个应用程序需要版本2。如何使用这两个应用程序? 如果您将所有内容都设置为 /usr/lib/python2.7/site-packages 要么 /usr/lib/python3.6/site-packages (或平台的标准位置),很容易发现自己处于 无意中更新了不应升级的应用程序… 为了避免这种情况,我们在虚拟环境中分配软件包。 所有虚拟环境都有自己的安装目录,并且不会相互影响或冲突。

我们可以使用两个工具创建隔离的pyton环境。

  1. 静脉
  2. 虚拟环境

如果使用的是Python 3.3和更高版本,则默认安装venv。 对于Python 2.x,您需要安装virtualenv。 为此,请运行以下命令:

sudo pip install virtualenv

现在创建一个虚拟环境。

使用virtualenv:

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

使用venv:

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

运行上述命令后,您将被置于虚拟环境中。

要关闭虚拟环境并切换回普通外壳,请运行以下命令:

deactivate

使用pip进行Python包管理

现在,我们将通过示例了解使用PIP的最常见基础。

为了查看所有命令(单个参数和常规参数)的列表,请运行以下命令:

pip

要知道install命令的作用,请运行以下命令:

pip install --help

pip最常见的用途是从 PyPi(Python包索引)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列出所有已安装的软件包。

搜索包裹

要搜索特定的程序包,例如YouTube-DL,请运行以下命令:

pip search youtube-dl

此命令将搜索并显示与字符串“ YouTube-DL”匹配的结果。

更新包

要更新过时的软件包,请运行以下命令:

pip install --upgrade youtube-dl

要以简单的表格格式获取所有过时软件包的列表,请运行以下命令:

pip list --outdated --format=columns

输出示例:

Package Version Latest Type 
----------------- ------------ ---------- -----
alembic 0.8.10 0.9.6 sdist
argcomplete 1.9.2 1.9.3 wheel
arrow 0.10.0 0.12.0 sdist
arxiv2bib 1.0.7 1.0.8 sdist
asn1crypto 0.22.0 0.24.0 wheel
attrs 17.2.0 17.3.0 wheel
awesome-finder 1.0.5 1.1.1 wheel
cffi 1.10.0 1.11.2 wheel
classifier 1.7 2.0 sdist
cryptography 1.9 2.1.4 wheel
decorator 4.0.11 4.1.2 wheel
fuzzywuzzy 0.15.0 0.15.1 wheel
hyperlink 17.2.1 17.3.1 wheel
idna 2.5 2.6 wheel
imageio 2.1.2 2.2.0 sdist
lxml 3.8.0 4.1.1 wheel
Mako 1.0.6 1.0.7 sdist
MarkupSafe 0.23 1.0 sdist
papis 0.4.6 0.5.0 sdist
parse 1.6.5 1.8.2 sdist
praw 4.3.0 5.3.0 wheel
prawcore 0.7.0 0.13.0 wheel
pyasn1 0.2.3 0.4.2 wheel
pyasn1-modules 0.0.9 0.2.1 wheel
pycairo 1.13.3 1.15.4 sdist
pyOpenSSL 17.1.0 17.5.0 wheel
pyperclip 1.5.27 1.6.0 sdist
python-dateutil 2.6.0 2.6.1 wheel
python-magic 0.4.13 0.4.15 wheel
python-ptrace 0.8.1 0.9.3 wheel
python-xlib 0.20 0.21 wheel
redlib 1.5.6 1.5.7 sdist
requests 2.12.5 2.18.4 wheel
requests-toolbelt 0.7.0 0.8.0 wheel
setuptools 36.6.0 38.2.4 wheel
speedtest-cli 1.0.6 1.0.7 wheel
SQLAlchemy 1.1.5 1.1.15 sdist
tabulate 0.7.7 0.8.2 sdist
torrench 1.0.56 1.0.61 wheel
tqdm 4.11.2 4.19.5 wheel
Twisted 17.5.0 17.9.0 sdist
urllib3 1.21.1 1.22 wheel
wpm 1.33 1.34 sdist
youtube-dl 2017.10.15.1 2017.12.14 wheel
zope.interface 4.3.3 4.4.3 wheel

现在,我们使用以下命令来更新大多数最新可用版本中的过时软件包:

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

查看包裹信息

要查看有关软件包的详细信息,请运行以下命令:

$ pip show youtube-dl
Name: youtube-dl
Version: 2017.12.14
Summary: YouTube video downloader
Home-page: https://github.com/rg3/youtube-dl
Author: Sergey M.
Author-email: dst[email protected]
License: UNKNOWN
Location: /home/sk/MYENV/lib/python3.6/site-packages
Requires:

查看软件包的依赖关系

我们可以使用pipdeptree工具可视化所有已安装软件包的依赖关系。

使用以下命令安装它:

pip install pipdeptree

安装后,可以使用以下命令查看依赖关系树:

pipdeptree

移除包装

要卸载/删除已安装的软件包,请运行以下命令:

pip uninstall youtube-dl

要删除多个软件包,请通过以下方式指定它们:

pip uninstall package1, package2

为了删除与pip一起安装的所有pyton软件包,请运行以下命令:

pip freeze | xargs pip uninstall -y

有时pip不允许您删除属于该操作系统的软件包。 在这种情况下,您可以使用以下命令删除操作系统不拥有的所有软件包:

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

如前一节所述,我们可以将所有已安装的软件包转储到文件中,并使用以下命令将其从列表中删除:

pip uninstall -r MYENV_packages.txt -y

在这一点上,您可以了解点子以及如何使用它。 有关更多详细信息,请参阅 官方文档(https://pip.pypa.io/en/stable/user_guide/) 通过运行以下命令和pip帮助部分:

pip --help

或者简单地说,

pip

就是这样保持联系!

Sidebar