虚拟环境、依赖与项目打包
Git、代码规范与项目工程化#Python全栈#第六阶段#Git、代码规范与项目工程化#虚拟环境、依赖与项目打包约 677 字 · 2 分钟阅读
追问显示点击任意追问卡片可收起 / 展开
为什么不同 Python 项目通常需要独立虚拟环境?
追问 它隔离什么、不隔离什么?如何确认当前解释器和安装依赖使用的是同一环境?
为什么安装依赖时经常使用 python -m pip?
追问 系统中有多个 Python 或多个虚拟环境时,怎样排查“已安装却导入失败”?
直接依赖与间接依赖有什么区别?
追问 某个库目前由其他依赖带入,但业务代码直接使用它,是否应该明确声明?
版本范围、精确版本约束和锁定依赖分别解决什么问题?
追问 应用交付与公开发布的库为什么可能使用不同约束策略?锁定结果仍受哪些环境因素影响?
requirements.txt、约束文件与 pyproject.toml 各可以承担什么职责?
追问 为什么不能仅凭文件名就断言依赖已完全锁定?怎样确认所用工具对这些文件的解释?
pip freeze 输出是否总能直接作为理想的项目依赖清单?
追问 环境中存在无关库、开发工具或本地路径安装时,应如何整理和验证?
运行依赖、开发依赖与可选依赖应如何区分?
追问 格式化工具是否必须安装到用户运行环境?可选功能的依赖怎样在文档中说明?
pyproject.toml 中的构建系统、项目元数据与工具配置有什么区别?
追问 配置文件存在是否就说明能构建发行包?还需要确认哪些构建后端和包发现设置?
源码分发包与 wheel 有什么区别?
追问 包含本地扩展的依赖为什么可能受到 Python 版本、操作系统和平台标签影响?
可编辑安装与安装构建后的 wheel,适合哪些场景?
追问 开发环境运行正常,为什么仍应验证实际构建产物是否包含需要的模块与资源文件?
核对资料: Python Packaging 项目打包教程。