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

Updated on in Python with 459 views

开发过程中每个项目之间的依赖版本可能会有差异,如果在一台主机下开发多个项目,此时若两个项目的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

Responses
取消