前言
python 的虚拟环境venv和requirements 两者的使用事宜。及其配搭使用。
环境
系统环境
Distributor ID: Ubuntu
Description: Ubuntu 18.04.4 LTS
Release: 18.04
Codename: bionic
Linux version : 5.3.0-46-generic ( buildd@lcy01-amd64-013 )
Gcc version: 7.5.0 ( Ubuntu 7.5.0-3ubuntu1~18.04 )
软件信息
version :
Python 3.7.2
正文
虚拟环境venv
在 python3 中,虚拟环境由标准库中的 venv 包原生支持,创建venv虚拟环境的命令格式如下:
python3 -m venv virtual-environment-name
-m venv 选项的作用是以独立的脚本运行标准库中的 venv 包,后面的参数为虚拟环境的名称。
本例子为创建一个名为 venv 的虚拟环境,命令如下:
python3 -m venv venv
若想使用虚拟环境,要先将其“激活”,命令如下:
source venv/bin/activate
windows“激活”示例:
cd venv\Scripts
actives
取消激活:
venv\Scripts\deactives
requirements.txt依赖包
python 依赖包
描述问题:
在对项目进行打包时,经常需要编写requirements.txt(一个项目所需要的模块) 当项目太大的时候,手动添加模块和对应的版本的工作量就大起来了。
问题:
python自动python 导出一个项目所需要的模块及其对应版本
解决方案:
- 使用 pip freeze
pip freeze > requirements.txt
这种方式配合virtualenv才好使,否则把整个环境中的包都列出来了。
- 使用 pipreqs
这个工具的好处是可以通过对项目目录的扫描,自动发现使用了那些类库,自动生成依赖清单。
pip install pipreqs
cd $project_location
pipreqs ./
INFO: Successfully saved requirements file in ./requirements.txt
如果你是window环境,
运行pipreqs ./ 可能会报错:
UnicodeDecodeError: ‘gbk’ codec
只需将 pipreqs ./ 修改为
pipreqs ./ --encoding=utf-8
依赖包 requirements使用方法 ~= >= <
# 指定一个版本
project == 1.3
# 指定版本区间
project >=1.2,<2.0
# 使用该版本的兼容发行版本
project~=1.4.2
# 6.0 以后的特性,可以指定环境
# Python 版本小于 2.7 时安装 5.4 版本
project == 5.4; python_version < '2.7'
# 仅在 Windows 环境下安装
project; sys_platform == 'win32'
# 仅在linux 环境下安装
project; sys_platform == 'linux'
后记
None