虚拟环境

包库

包库或者叫软件源是 Python 第三方软件的库的集合,或者市场,可以发布、下载和管理软件包,其中 pypi (Python Package Index) https://pypi.org/是官方指定的软件包库,基于其上的 pip 工具就是从这里查找、下载安装软件包的。

包管理器

虚拟环境

虚拟环境是一个包含了特定 Python 解析器以及一些软件包的自包含目录,不同的应用程序可以使用不同的虚拟环境,从而解决了依赖冲突问题,而且虚拟环境中只需要安装应用相关的包或者模块,可以给部署提供便利。

创建虚拟环境

virtualenv 工具

python3.3之前,只能通过virtualenv创建虚拟环境。需要单独安装virtualenv

pip install virtualenv

安装完后,在当前目录创建一个名为myvenv的虚拟环境

virtualenv --no-site-packages myvenv

--no-site-packages 表示创建虚拟环境时,不复制主环境中安装的第三方包,创建一个干净的虚拟环境

venv模块

Python3.3 之后,可以用模块 venv 代替 virtualenv 工具,好处是不用单独安装,3.3 及之后的版本,都可以通过安装好的 Python 来创建虚拟环境:

python -m venv myvenv

可以在当前目录创建一个名为myvenv 的虚拟环境

激活虚拟环境

虚拟环境创建后,需要激活才能使用。

激活后,可以在命令行中看到虚拟环境标记。

退出虚拟环境

退出虚拟环境很简单,只需要执行 deactivate 命令就行,这个命令也在虚拟环境的脚本目录下,因为激活时,将脚本目录设置到 PATH 中了,所以可以直接使用。

Pycharm

Pycharm 应该是功能最好的 Python 开发工具,专为 Python 开发而生,除了基本的开发功能外,还提供项目创建、打包、测试等丰富功能,有很大的市场占有率。

创建项目时,在项目创建对话框中,可以创建或者选择已经已有的解析器

选择 Python 解析器

选择创建新的解析器时,需要选择创建虚拟环境的工具,如 virtualenv;指定虚拟环境的目录;选择 Python 基础解析器,同virtualenv 工具的 -p 参数的效果;以及是否要继承基础解析器的第三方库 和 是否将这个虚拟环境作为默认环境,即创建其他项目时默认选择。

部署虚拟环境

之所以在开发时选择虚拟环境,除了避免库之间的冲突,还有重要的原因是方便部署,因为虚拟环境是独立的,仅包含了项目相关的依赖库,所以部署的效率更高,风险更小。

一般部署流程是:

  1. 开发完成后,使用 pip freeze > requirements.txt 命令将项目的库依赖导出,作为代码的一部分。
  2. 将代码上传到服务器。
  3. 在服务器上创建一个虚拟环境。