如何使用pip管理python包
PIP,Python Package Manager用于安装,升级,删除以Python编程语言编写的包。
在本教程中,我们将讨论如何使用pip安装pip和管理python软件包,例如安装,更新和删除包。
此外,我们将看到什么是虚拟环境,如何创建它,以及如何使用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
要获取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:
PIP和车轮在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
Python 3:
$sudo yum install python3-pip
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:
对于Python 2.x:
$sudo apt-get install python-pip
对于Python 3.x:
用"Python3"替换为"Python"以安装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 Distrs在核心存储库中没有轮子。
在这种情况下,我们可能需要添加一些第三方存储库,例如涡欧基。
如果我们使用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/python3.6/site-packages (python 3.6)
创建虚拟环境
在安装任何Python软件包之前,建议使用虚拟环境。
为什么我们需要创建虚拟环境?
你可能会问。
因为,Python"虚拟环境"允许我们在孤立位置安装Python包,而不是全局安装它。
让我们说要安装一个python包,例如youtube-dl,需要100版的libfoo,但另一个应用程序需要版本2.如何使用这两个应用程序?
如果将所有内容安装到/usr/lib/python2.7/site-packages或者/usr/lib/python3.6/site-packages(或者任何平台的标准位置),它很容易在情况下结束无意中升级不应该升级的应用程序。
为避免这种情况,我们将软件包隔离在虚拟环境中。
所有虚拟环境都有自己的安装目录,并且不会彼此相互作用或者冲突。
我们可以使用两个模块创建孤立的Python环境,即:
- venv,
- 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包索引)安装。
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=2016.12.14
要安装指定版本以外的版本,请运行:
$pip install youtube_dl!=2016.12.14
注意'!"在等符号前面。
要安装等于或者大于指定版本的版本,请运行:
$pip install youtube_dl>=2016.12.14
要在特定范围内安装版本,例如大于或者等于一个版本,少于另一个版本,运行:
$pip install youtube_dl>=2016.12.14, <2016.12.20
要安装具有特定版本的"兼容"的版本:
$pip install youtube_dl~=2016.12.14
下载包
要将包含所有依赖项的包(无需安装),请运行:
$pip download youtube-dl
列出所有已安装的软件包
要查找PIP安装的软件包,请运行:
$pip freeze
或者,
$pip list
这些命令将在系统中使用pip显示所有已安装的软件包。
搜索包
要搜索特定包,例如youtube-dl,运行:
$pip search youtube-dl
此命令将搜索并显示与字符串"youtube-dl"匹配的结果。
更新包
要以简单的表格列格式列出所有过时的软件包,请运行:
$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
查看包信息
要查看包的详细信息,请运行:
$pip show youtube-dl Name: youtube-dl Version: 2016.12.14 Summary: YouTube video downloader Home-page: https://github.com/rg3/youtube-dl Author: Sergey M. Author-email: Hyman@theitroad 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安装的所有Python软件包,请运行:
$pip freeze | xargs pip uninstall -y
有时pip不允许我们卸载操作系统所拥有的包。
在这种情况下,我们可以使用命令卸载OS不拥有的所有包:
$pip uninstall -y $(pip freeze | sed 's;==.*;;g' | tr '\n' ' ')
正如我在上一节中提到的那样,我们可以使用命令将所有已安装的软件包转储到文件中并从列表中卸载它们:
$pip uninstall -r MYENV_packages.txt -y
在这个阶段,我们可能会了解对PIP及其使用情况的想法。
有关详细信息,请通过运行以下命令,请参阅官方文档和PIP帮助部分:
$pip --help
或者
$pip