Python虚拟环境
一、虚拟环境介绍
- 主要工具virtualenv和pipenv
- 为给不同的工程创建互相独立的工程
- 每个功能都有自己的依赖包,与工程无关
- 虚拟环境中同一个包可以有不同的版本
- 虚拟环境的数量没有限制
二、virtualenv的安装和应用
环境安装(windows)
- pip 安装 virtualenv
- pip 安装虚拟环境管理包 virtualenvwrapper-win
- 创建一个存放虚拟环境的家目录(建议命名.env或.virtualenv)
- 配置环境变量(变量名:WORK_HOME,路径是创建的虚拟环境家目录)
virtualenv的使用命令
- workon : 列出所有的虚拟环境
- workon [name] : 进入指定的虚拟环境
- deactivate :退出当前的虚拟环境
- mkvirtualenv [name] : 创建虚拟环境
- rmvirtualenv [name] : 传出虚拟环境
- 安装第三方库 :进入虚拟环境 pip install
requirements.txt 文件
-
requirements.txt文件,里面会记录当前项目的所有依赖包及版本号,其作用是用来在另一个环境上重新构建项目所需要的运行环境依赖
-
导出当前环境的requirements.txt
- 项目在虚拟环境中就导出虚拟环境的配置
- 项目在本地环境也可以导出本地环境的配置
- pip freeze >requirements.txt
-
使用requirements.txt恢复环境
- 项目在虚拟环境中就安装到虚拟环境里
- 项目在本地环境中就安装到本地环境里
- 将文件导入到新项中执行命令
- pip install -r requirements.txt
三、pipenv的安装和应用
安装 pip install pipenv
pipenv 集成了pip,virtualenv两者的功能,pipenv使用pipfile和pipfile.lock记录包信息,前者用来记录项目依赖包列表,后者记录固定版本的详细依赖包列表,查看依赖关系十分方便,各个地方使用了哈希效验,无论安装还是卸载包都十分安全
创建虚拟环境
- 第一步撞见文件夹 mkdir [name]
- 第二步进入文件夹 cd [name]
- 第三部初始化虚拟环境 pipenv install
- 初始化后会生成pipfile和pipfile.locke文件
pipenv管理模块和包
- 在虚拟环境中安装包:pipenv install 包名 将包安装在[packages]下(注意:当前项目路径下执行命令)
- pipenv install --dev 包名 将包安装在开发环境中[dev-packages]
- 卸载虚拟环境安装包 pipenv uninstall 包名
- 查看安装包及依赖关系 pipenv graph
- 生成requirements.txt文件
- pipenv lock -r >requirements.txt 来源[packages]
- pipenv lock-r--dev >requirements.txt 来源[dev-packages]
- pipenv lock -r >requirements.txt 来源[packages]
- 使用requirements.txt恢复环境
- pipenv install -r requirements.txt
- 使用pipfile和pipfile.lock恢复环境
- 将两个文件导入到新的项目中,在项目路径下执行
- pipenv install 项目环境恢复
- pipenv install --dev 开发环境恢复
pipenv的相关命令
- pipenv --rm 删除虚拟环境
- pipenv --where 列出当前工程路径
- pipenv --venv 列出虚拟环境路径
- pipenv --py 列出python解释器路径
- pipenv graph 查看依赖包
- pipenv lock 生存lock文件
- pipenv shell 进入虚拟环境
- exit 退出虚拟环境
总结
- virtualenv 任意项目都能workon创建虚拟环境; pipenv 创建的虚拟环境进去默认在该路径下,提前做了一步锁定,别的项目要使用该环境还要切换到项目路径下才能使用
- virtualenv 不区别 开发依赖和项目依赖包 pipenv做了进一步区分为[dev-packages]和[packages]
- pip freeze 生成全部的依赖包的requirement.txt
- pipenv lock-r区别[dev-packages]和[packages]生成requirement.txt