pip 和虚拟环境

Mr.R0boter 于 2020-10-26 发布

Python 的包管理工具

Python 具有大量的第三方模块,而管理这些模块的安装、卸载、升级就依靠包管理工具pip

安装

Windows

在 Windows 下 Python3 的所有安装版本都包含了 pip 的安装选项

而 Python2 只有最新的 2.7 版带有 pip 安装选项,其他低版本需要手动安装

  1. 下载安装脚本https://bootstrap.pypa.io/get-pip.py

  2. 在 python 安装路径下的 Scripts 中执行python get-pip.py

Linux

Linux 下默认都是没有安装 pip 的,需要自己手动安装

Linux 下 python2 的包管理器是 pip,Python3 的包管理器是 pip3

以 Debian 系为例:

  1. python2:sudo apt-get install python-pip
  2. python3:sudo apt-get install python3-pip

更新

Windows 下安装后需要将 Python 安装路径和安装路径下的 Scripts 文件夹路径都加入到环境变量中 更新时根据 Python 版本不同使用不同的命令

python -m pip install --upgrade pip

常用命令

  1. 安装包:pip install packageName
  2. 升级包:pip install --upgrade packageName
  3. 通过 requirements file 安装依赖的第三方包:pip install -r requirements.txt
  4. 卸载包:pip uninstall packageName
  5. 搜索包:pip search packageName
  6. 列出已安装包:pip list 添加 --outdated 参数可以检查哪些包需要更新
  7. 查看包详细信息:pip show packageName
  8. 查看当前 pip 版本:pip --version 或者 pip -V
  9. 生成 requirements 文件:pip freeze > requirements.txt

设置国内源

因为 pip 默认的源在国外,有时候下载会比较慢,因此建议使用国内的镜像源

临时使用

pip install -i http://xxx.xxx.xxx packageName

永久更改

Linux 是在当前用户的家目录下创建 .pip 文件夹,Windows 是在当前用户家目录下创建 pip 文件夹

在创建的文件夹下创建配置文件pip.ini写入如下内容:

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

常用的国内源

阿里云:http://mirrors.aliyun.com/pypi/simple

中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple

豆瓣(douban) http://pypi.douban.com/simple

清华大学 https://pypi.tuna.tsinghua.edu.cn/simple

中国科学技术大学 http://pypi.mirrors.ustc.edu.cn/simple

虚拟环境

使用 Python 时经常会使用第三方的包,但经常出现不同项目之间使用的同一个包的不同版本,而且项目多了以后,系统中存在大量的只用的到一次的第三方包

而且,一个系统中可能存在多个版本的 Python,不同项目使用的 Python 版本也不尽相同,为了解决版本冲突和包的冗余问题,建议使用虚拟环境

在虚拟环境中,可以指定要使用的 Python 版本,安装的第三方包也只存在虚拟环境下,不会安装在系统中

安装虚拟环境:pip install virtualenv

Tips:在 Windows 下安装 virtualenv 后需要将该路径添加到环境变量中才能生效,一般路径为用户家目录下的 AppData 下的 Roaming 下的 Python 下的 对应版本的 Pythonxx 下面的 Scripts 目录

创建

进入到指定的项目中使用:virtualenv .env,添加-p python可执行文件的绝对路径可以指定要使用的 python 版本,或者使用--python=python3.8,但是这个选项如果该版本不存在环境变量中,需要指定绝对路径。

该命令会在当前目录创建一个 .env 目录,目录名可以随便取,一般使用点加项目名或点加 env

激活

当创建了虚拟环境后需要激活虚拟环境,才可以将第三方包安装在当前项目的虚拟环境中,否则还是安装在系统中

在 Windows 下使用:.\.env\Scripts\activate

在 Linux 下使用:.env/bin/activate

退出虚拟环境

在项目根目录下执行以下命令

Windows:.\.env\Scripts\deativate.bat

Linux:.env/bin/deativate

删除虚拟环境

当项目开发完成后,虚拟环境中存在大量的第三方包,如果一起打包会造成文件体积过大,因此建议删除虚拟环境,通过 requirements file 来管理项目依赖的第三方包

直接删除创建的虚拟环境文件夹即可