在 Python 中,我们安装第三方模块,有三种方式。第一种方式是第三方模块提供一个安装程序, 我们用 Python 解释器去执行这个程序即可;剩下两种方式是通过 setuptools 这个工具完成的。
Python 有两个封装了 setuptools 的包管理工具:easy_install 和 pip,目前官方推荐使用 pip,这两个模块在 Python 3.7 版本 中已经作为内置模块存在了,所以我们不需要安装,即可使用这两个模块。
本节课我们全面学习以上三种方法去安装第三方模块。
我们现在以安装第三方模块 six 为例,来详细介绍如何使用 Python 解释器直接安装该模块。 首先我们需要网上下载我们需要安装的模块包, 点击进入 six 模块所在官网,下载源码压缩包到本地然后解压。
在控制台里面进入解压后的 six 模块里 setup.py 所在的文件夹,然后执行 Python setup.py install 即可。
我们知道第三方模块一般安装在 Python 解释器所在安装目录下的 lib 目录下的 site-packages 目录下,通过查看我们发现确实安装上了。
第三方模块的使用方式和内建模块以及自定义模块使用方式一样,我们在安装 six 时,six 自带的 setup.py 程序自动把 six 模块所在路径添加到 sys.path 中了,所以我们直接导入即可。
有时候我们需要安装的第三方模块包并没有提供 setup.py 文件,所以我们无法通过 Python 直接安装,这个时候我们可以使用包管理工具 easy_install 或 pip 方式安装。
我们知道在 Python 3.7 版本中,Python 解释器已经把 easy_install 作为 Python 内置模块了,我们可以直接使用该模块,我们使用 easy_install 模块安装第三方模块,不需要自己手动下载第三方模块,我们可以在任意目录下,直接使用 easy_install packageName 来安装第三方模块,easy_install 会自动到模块管理库里面找我们要安装的第三方模块的地址自动下载到本地,然后进行安装。
easy_install 同样会把第三方模块安装到 Python 解释器所在安装目录下的 lib 目录下的 site-packages 目录下,大家可以自行查看,在此就不在赘述,使用方法也一样。
我们知道在 Python 3.7 版本中,Python 解释器已经把 pip 作为 Python 内置模块了,我们可以直接使用 pip 安装第三方模块。我们使用 pip 模块安装第三方模块,不需要自己手动下载第三方模块,我们可以在任意目录下,直接使用 pip install packageName 来安装第三方模块,pip 会自动到模块管理库里面找我们要安装的第三方模块的地址自动下载到本地,然后进行安装。
pip 同样会把第三方模块安装到 Python 解释器所在安装目录下的 lib 目录下的 site-packages 目录下。pip 关于安装路径问题和上面两种方法不同的是:上面两中方法在安装模块的时候,会在 site-packages 目录下创建一个以该模块名加版本号命名的文件夹(包),把所有该模块的类库函数放在在这个包下,然后把这个文件夹的全路径加入到 sys.path 里面; 而用 pip 安装时,则是直接在 site-packages 目录下创建一个以该模块名命名的文件夹(包),把所有该模块的类库函数放在在这个包下,然后再创建一个以该模块名加版本号命名的文件夹放入 该模块的说明信息,因为 site-packages 所在全路径已经在 sys.path 里面,所以我们可以直接使用该模块。
第三方模块大都是外国友人写的,模块所在的服务器也在国外,由于祖国伟大的 Great Firewall 的存在,我们在使用 pip 安装这些模块时,可能导致下载失败无法安装,这时候我们可以使用国内镜像来安装。
使用镜像的安装命令为:pip install -i packageUrl packageName
,比如我们使用国内清华大学的镜像安装 six
模块,可以执行命令:pip install -i https://pypi.tuna.tsinghua.edu.cn/simple six
。下面表格中我们列出国内主流的镜像地址。
机构名称 | 镜像地址 | 示例(比如用镜像安装 six) |
---|---|---|
阿里云 | https://mirrors.aliyun.com/pypi/simple | pip install -i https://mirrors.aliyun.com/pypi/simple six |
豆瓣 | https://pypi.douban.com | pip install -i https://pypi.douban.com six |
清华大学 | https://pypi.tuna.tsinghua.edu.cn/simple | pip install -i https://pypi.tuna.tsinghua.edu.cn/simple six |
中国科学技术大学 | https://pypi.mirrors.ustc.edu.cn | pip install -i https://pypi.mirrors.ustc.edu.cn six |
华中科技大学 | https://pypi.hustunique.com | pip install -i https://pypi.hustunique.com six |
山东理工大学 | https://pypi.sdutlinux.org | pip install -i https://pypi.sdutlinux.org six |
pip 还有其它功能,比如查看,更新,卸载第三方模块等等,下面我们列出常用的命令。
功能 | 命令 | 示例(下面对更新,移除,搜索操作以 six 模块为例) |
---|---|---|
查看使用pip已安装的模块 | pip list | pip list |
更新第三方模块 | pip install -U packageName | pip install -U six |
移除第三方模块 | pip uninstall packageName | pip uninstall six |
搜索第三方模块 | pip search packageName | pip search six |
查看帮助文档 | pip help | pip help |
升级pip | pip install -U pip | pip install -U pip |
当然我们也可以使用 pip 同时安装多个模块,只需要每个模块用空格隔开即可,比如我们想同时安装 six 模块, pillow 模块和 requests 模块,操作命令如下。
pip install six pillow requests
我们的 pip 维护的数据仓库也不是万全的,有时候有的第三方模块没有地址加入到 pip
的数据仓库中,但是一般模块本身都提供一个后缀名为 whl 的文件,我们可以使用
pip install whl文件名
或easy_install whl文件名
进行安装,下面我们举例使用 pip 安装 whl 文件。
pip 很强大,它本身是包管理工具,用 pip 安装第三方模块时,pip 本身可以根据我们的 Python 版本自动找到适用的第三方模块版本。我们以后要经常使用 pip 来安装第三方模块,几乎用不到前面两种安装方式。
熟悉以上三种安装方式。
习惯用 pip 安装第三方模块。
用 pip 安装第三方模块 pillow(使用镜像),并列出 Python 解释器环境下用 pip 安装的所有模块,然后用 pip 卸载 pillow 模块。
还有一种方式yum install 安装python包 先安装epel源 yum install -y epel-release yum install -y python-pip
厉害了,博主
name pip is not defined 是什么问题啊[捂脸][捂脸]
install imageio这个下载一半就失败了 可以教教嘛 大佬
用镜像啊
作者大佬您好
我用cmd
pip install xird
提示了这个,请问是什么意思?比较急,先谢谢
Collecting xird Could not find a version that satisfies the requirement xird (from versions: ) No matching distribution found for xird You are using pip version 19.0.3, however version 19.2.3 is available. You should consider upgrading via the 'python -m pip install --upgrade pip' command.
大佬我pip install的时候报错:“module” object is not callable是怎么回事?
谢谢,解决问题了
感谢感谢,非常有用,被搞得头疼