pip freeze能否显示带方括号标识的可选依赖项
pip freeze 导出可选依赖包相关问题说明
问题场景
安装带有setup.py中extras_require配置的可选依赖包时,执行安装命令:
$ pip install mypackage[optional]==1.0.0
安装完成后执行pip freeze查询已安装包,输出结果中不会展示对应的可选依赖标记:
$ pip freeze | grep mypackage mypackage==1.0.0
在requirements-to-freeze工作流中,需要通过pip freeze将生产环境使用的依赖精确版本更新到requirements文件中,期望输出结果可以保留可选依赖标记,展示形式如下:
mypackage[optional]==1.0.0
方案说明
更新提示: 不需要修改pip freeze的默认行为实现上述展示效果,requirements-to-freeze工作流本身的逻辑已经可以满足依赖固化需求:
- 工作流第一步是提前在
requirements-to-freeze.txt中写入带可选依赖标记的依赖声明,例如mypackage[optional] - 执行
pip install -r requirements-to-freeze.txt时,pip会自动拉取对应包的适配版本,同时安装全部指定的可选依赖 - 后续执行
pip freeze导出依赖列表时,所有已经安装的可选依赖都会作为独立条目被列入输出,哪怕主包mypackage的条目没有携带方括号形式的可选依赖标记,最终导出的依赖列表也是完整可用的,完全可以达到精确锁定生产环境依赖版本的目标。
内容的提问来源于stack exchange,提问作者cdf
相关产品推荐
相关产品推荐

