Python包管理工具pip的安装和使用

Python016

Python包管理工具pip的安装和使用,第1张

Python有两个著名的包管理工具easy_install.py和pip。在Python2.7的安装包中,easy_install.py是默认安装的,而pip需要我们手动安装。

方法1:利用常用curl获取

>>后面是指定获取的pip脚本的名字,也可以是curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py

方法2:利用wget获取,先要安装wget

备注:看网上还有利用easy_install安装pip,但是我尝试了并没有成功

原因是 Python.org sites 终止支持TLS1.0和1.1版本,TLS需要>=1.2

参考: https://stackoverflow.com/questions/49768770/not-able-to-install-python-packages-ssl-tlsv1-alert-protocol-version

主要命令

所有命令中,最重要的两个命令是install和uninstall。

pip支持四种方式安装python包。

从PyPI安装一个包

安装一个全局区域的包,一般需要sudo权限。在mac系统上,即使是管理员也无法安装,自从OS X El Capitan及以后的版本包含了一套安全技术(System Integrity Protection简称为SIP)来防止恶意软件修改系统保护区域。具体可参考SIP。因此,我们有时候需要将PyPI包安装到用户区,这个时候,可以用.

pip在升级软件包之前会自动卸载旧的软件包。

可以将所有需要安装的包放入一个requirements.txt文件中,然后可以一次安装。requirements.txt 文件的每一行都要表明安装的内容,而且尽量不要依赖文件中指定包的前后安装顺序。

从git安装

从svn安装

从一个分支安装

还有很多其他的包安装功能,但是上面的已经满足了大部分需求。其他的请参考 文档 。

pip uninstall可以卸载大部分的包,除了一下两种情况

使用方式主要有两种:

卸载单个包

卸载多个包

pip check用来验证已安装的包是否有兼容的依赖性问题。

上面的结果说明matplotlib包有两个依赖包没有安装。

pip search用来搜索名字或者摘要中包含搜索关键字的PyPI包。

选项只有一个,就是指定PyPI的url,默认url为 https://pypi.python.org/pypi

例如,search frida

以下两者都可以用,结果同上。

pip list命令会按照字典序排列列举已安装的包,包括可编辑的包。

主要有如下选项:

输出格式:

legacy:将要被废弃

freeze

columns

json

当某些时候debug的时候,需要提供一个完整的python环境,python freeze提供了此功能,它能够输出机器上python环境的快照(所有已安装的包)。

下面是freeze命令的选项:

输出用户区安装的前5个安装包:

pip show可以用来显示每个包的具体信息。show命令只有一个选项 -f,用来显示安装包的文件列表。

$ pip show -f|--files packageName

更多命令请参考 文档

pip默认的index-url是 https://pypi.python.org/pypi/ ,

为了提高速度,我们可以更改pip源为国内的阿里云源。更改方法如下:

创建配置文件

添加阿里源

pip.conf内容如下:

pip install用来安装python第三方库,使用时有比较多的选项,这里我们选几个常用的来讲解下,包括以下几个: --requirement,--no-deps,--target,--user,--upgrade,--force-reinstall,--ignore-installed。

这个选项允许我们指定一个文件,pip会安装此文件里指定的第三方库,比如我的电脑上有个文件 requirements.txt,内容如下:

当我执行pip install -r requirements.txt时就会安装上面的3个库,输出内容的最后两行如下:

我们看到安装的库多于3个,那是因为pip也会同时安装依赖,这个就是下面要讲的。

这个选项告诉pip不安装依赖,只安装指定的库,如果执行以下语句:

则会只安装3个库,最后两行输出如下:

这个选项指定安装目录,比如指定 --target /pip/install/directory 就会安装到/pip/install/directory目录。

这个选项指定安装到特定目录,linux上是 ~/.local/,windows上是 %APPDATA%Python。

当一个库有新版本时,我们可以指定这个参数对其进行升级。

如果我们已经安装过某个库,再次安装时不会重新安装,这时指定 --force-reinstall 可以强制安装。

这个选项告诉pip忽略已经安装的库,导致pip会覆盖它们。这个选项与force-reinstall不同的是,如果某个库已安装,force-reinstall会先卸载再安装,ignore-installed不会卸载会直接覆盖。