学会使用pip管理Python包

BG91

Posted by Blue Geek on April 20, 2020

学会使用pip管理Python包

By 青衣极客 Blue Geek In 2020-04-20

目前流行的Python包管理工具有很多,比如 Anacondaeasy_installpip。初学者对于Python的运行机制和包管理方式都不太熟悉,很容易选择 Anaconda 这样的集成环境,但这并不是一种好的选择。集成的开发环境除了对初学者容易上手一点,没有别的好处,反而导致包的配置不灵活,包的版本陈旧以及可能引起系统配置环境冲突等等。 相比之下,pip 是一款更加优秀的包管理器。接下来就对 pip 的基本使用和一些常见问题稍加讨论,让每一个Python开发者都能管理好第三方模块;同时提供一些安装加速的方法,毕竟这是国内一个很让人头疼的问题。

1. 常用指令

(1) 包的安装和卸载

如果你想要安装一个名为 pkg_name 的包,可以直接运行以下指令:

pip install pkg_name

如果你想卸载一个名为 pkg_name 的包,可以直接运行以下指令:

pip uninstall pkg_name

这两条大概是我们在进行Python包管理时最常用的指令。 但是有一个问题,如果依赖的10个包需要安装,那么每次安装开发环境都要运行10遍这个指令吗?当然是不用的。在这种情况下,我们常常将依赖的包名和对应的版本写入一个 requirements.txt 文件,然后直接运行以下指令:

pip install -r requirements.txt

这个 requirements.txt 的内容大概可以像这样写:

numpy

如果你想安装某一个历史版本,而不是最新版,可以填写以下内容:

numpy==1.16.4

pip安装第三方包的内部流程

(2) 包的升级

有时安装一些新的第三方包之后运行出错,报错显示依赖包的版本过低,需要升级一些包。比如,需要升级名为 pkg_name 的包,可以运行以下指令:

pip install -U pkg_name

(3) 包的检索和查看

如果你只是想确认一个指定名字为 pkg_name 的包是否存在于Pypi服务器中,可以使用以下指令:

pip search pkg_name

如果你想查看本地已经安装的包的名和版本,可以运行以下指令:

pip list

上述的指令中,真正常用的指令其实只有安装和卸载两个,其他的只是偶尔需要用到。所以如果感觉稍显复杂,只需记住 installuninstall 两个指令即可。

2. 安装加速

由于众所周知的原因,国内访问 Pypi 服务器上的内容会非常慢,所以在使用 pip 安装的时候也会遇到这个问题。对于 Linux 或者 MacOS用户,如果已经开启了一些跨网络访问的软件,可以通过设置 https_proxy 来加速,但这个方法有时也并不快。 以下介绍两种比较快的方法。

在运行 pip install 安装第三方包的时候,命令行页面会显示现在包的URL地址。我们可以把这个地址复制下来,然后使用下载器来加速下载。 下载完成之后,会得到一个 pkg_name.whl 文件。只需运行

pip install pkg_name.whl

就可以从本地的文件安装了。这就是一种方法,也是建立在你有一个可以加速的下载器的情况下。

此外,还有另一种办法,修改下载源地址。

我们知道,pip 直接安装的原理是从 Pypi服务器上拉取对应的安装包,如果能有更快的下载源服务器,就可以更快地安装了。国内有一些源都不错,这里推荐一个清华大学的镜像源服务器。在 Home 目录下的 .pip 目录下创建一个名为 pip.conf 的文件,其内容如下:

global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
[install]
trusted-host = pypi.tuna.tsinghua.edu.cn

注意:Windows下的文件路径为 Home 下的 pip/pip.ini

然后就可以愉快地使用 pip 指令飞快地安装第三方模块了。

pip从清华源服务器安装内部流程

3. 常见错误

(1) 权限错误

在 Linux 或者 MacOS中使用这种指令时,有可能会遇到与权限有关的报错,这时就看你是打算将包安装到系统的目录下,还是用户目录下。如果打算安装到系统目录下,就在开头加上 sudo 如果想安装在用户目录下,就在最后加上 --user

(2) 升级pip后报错

在 Linux 或者 MacOS中,由于自带的 pip 工具的版本十分陈旧,所以往往需要升级。升级过程往往也是没有问题的,但是升级完成之后,再运行 pip 指令就会报错。错误信息显示是某一个模块不存在。这是 pip 可执行文件中有错。 可以使用 which pip 查看这个可执行文件的位置,一般是 “/usr/bin/pip” 文件。将该文件的第9行改成如下:

from pip import __main__

该文件的第11行改成如下:

sys.exit(__main__._main())

经过以上修改之后,就可以正常使用了。注意在修改之前,务必先备份一下原始文件。

(3) 网络超时

如果安装的命令行一直在打印网络链接超时相关的警告信息,那么说明你的网络可能无法访问互联网。这就只能排查网络故障了。

pip 工具还有很多其他的很多命令字,但是从使用经验来看,很少用到。如果你已经打算编写Pyton程序,那么最好还是学会使用一点命令,因为总会用得着。pip 现在已经成了Python的标准配置,最新的安装程序中都自带了pip,简直就是Python的亲儿子。这种情况下,pip 自然就是最好的选择了。

CHANGELOG

  • 2020-05-25 增加Windows配置pip说明

【青衣极客】公众号



COMMENT

博客评论区功能由Github Issue提供,提交Issue时请以本文标题为话题

"BG91-学会使用pip管理Python包"