Jeffrey的博客 Jeffrey的博客

左脑编程,右脑写诗

目录
Flask构建Web API Wheel(二)—— 虚拟环境工具选择
/      

Flask构建Web API Wheel(二)—— 虚拟环境工具选择

开发过程中每个项目之间的依赖版本可能会有差异,如果在一台主机下开发多个项目,此时若两个项目的Flask版本要求不同,则可以通过创建虚拟环境来隔离多个项目之间的依赖关系。

Pipenv、Virtualenv、Poetry等均是项目依赖的打包工具,但各有其优缺点,对于这些打包工具在Python社区的讨论也掀起了不小的风浪。在此不评判每个工具的好坏,因为功能不尽相同,读者均可以根据自己喜好去选择。

Pipenv

Pipenv的方便之处只用过的人才知道,当然使用它遇到的bug也只有真正遇到的人才知道,但好在笔者在使用过程中没有遇到什么大的障碍。目前Pipenv和Virtualenv同为Pypa项目组下的官方的项目,也就是官方认定的打包工具,希望未来能更加给力。

命令功能
install创建虚拟环境并安装模块
shell激活虚拟环境
graph查看已安装的模块
uninstall卸载已安装的模块
--venv获取当前虚拟环境位置
--where获取当前项目根目录

Virturalenv

Virtualenv提供了项目环境隔离的功能,但按照依赖任然需要使用pip按照,使用Virtualenvwapper可以集中管理这些项目的虚拟环境。虽然有了Virtualenvwapper这个助手,但可见他的操作还是会比Pipenv复杂很多。

# virtualenv使用
# 创建虚拟环境
cd project_dir
virtualenv venv

# 指定虚拟环境
virtualenv -p /usr/bin/python3.7 venv

# 激活虚拟环境之后使用pip安装依赖
source venv/bin/activate

# virtualenvwrapper使用
pip install virtualenvwrapper
pip install virtualenvwrapper-win

# 写入虚拟环境的目录至环境变量~/.bashrc
export WORKON_HOME=~/Envs
source /usr/local/bin/virtualenvwrapper.sh
source ~/.bashrc

# 创建虚拟环境
mkvirtualenv venv
mkvirtualenv --python=/usr/local/python3.7.9/bin/python venv

# 退出虚拟环境
deactivate

# 删除虚拟环境
rmvirtualenv venv

Poetry

Poetry这个工具笔者用的不多,不做推荐和评论,有兴趣可以自己尝试。

命令功能
new创建项目脚手架
init基于已有的项目代码创建pyproject.toml文件
install安装依赖库
update更新依赖库
add添加依赖库
remove移除依赖库
show查看具体依赖库信息
build构建tar.gz或wheel包
publish发布到PyPI
run运行脚本和代码

此类的依赖管理工具还有很多,综上,笔者个人还是推荐Pipenv,并需要升级到目前的最新版Pipenv 2020.11.15,版本号也很喜欢,期待能有后续。


标题:Flask构建Web API Wheel(二)—— 虚拟环境工具选择
作者:Jeffrey