虚拟环境
包库
包库或者叫软件源是 Python 第三方软件的库的集合,或者市场,可以发布、下载和管理软件包,其中 pypi (Python Package Index) https://pypi.org/是官方指定的软件包库,基于其上的 pip 工具就是从这里查找、下载安装软件包的。
包管理器
- pip: 常用包管理工具。使用的是pypi软件包源
- conda: 科学计算领域的包管理工具,软件包源Anaconda Repository和Anaconda Cloud。除软件包管理外,还提供相互隔离的软件环境。
- Pipenv
- Poetry
虚拟环境
虚拟环境是一个包含了特定 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
的虚拟环境
激活虚拟环境
虚拟环境创建后,需要激活才能使用。
- Windows 系统中,激活脚本路径是
<myvenv>\Scripts\activate.bat
,如果是 powershell 命令行,脚本换成Activate.ps1
, 注意将<myvenv>
换成你自己的虚拟环境目录 - Linux 系统中,激活脚本路径是
<myvenv>/bin/activate
,默认脚本没有执行权限,要么设置脚本为可执行,要么用source
命令执行,例如
$ source myvenv/bin/activate
激活后,可以在命令行中看到虚拟环境标记。
退出虚拟环境
退出虚拟环境很简单,只需要执行 deactivate
命令就行,这个命令也在虚拟环境的脚本目录下,因为激活时,将脚本目录设置到 PATH 中了,所以可以直接使用。
Pycharm
Pycharm 应该是功能最好的 Python 开发工具,专为 Python 开发而生,除了基本的开发功能外,还提供项目创建、打包、测试等丰富功能,有很大的市场占有率。
创建项目时,在项目创建对话框中,可以创建或者选择已经已有的解析器
选择 Python 解析器
选择创建新的解析器时,需要选择创建虚拟环境的工具,如 virtualenv
;指定虚拟环境的目录;选择 Python 基础解析器,同virtualenv
工具的 -p
参数的效果;以及是否要继承基础解析器的第三方库 和 是否将这个虚拟环境作为默认环境,即创建其他项目时默认选择。
部署虚拟环境
之所以在开发时选择虚拟环境,除了避免库之间的冲突,还有重要的原因是方便部署,因为虚拟环境是独立的,仅包含了项目相关的依赖库,所以部署的效率更高,风险更小。
一般部署流程是:
- 开发完成后,使用
pip freeze > requirements.txt
命令将项目的库依赖导出,作为代码的一部分。 - 将代码上传到服务器。
- 在服务器上创建一个虚拟环境。