各语言包管理方式对比
🌍 Java (Maven/Gradle)依赖默认就是项目局部的,不需要特别指定
依赖天然按模块/作用域隔离
依赖位置也在
node_modules/ 默认在当前项目局部生效
依赖位置,如果不手动指定虚拟环境,默认则是全局
原因
- Python 诞生较早(1991年),当时”一个系统一个Python”是主流思想
- Node.js(2009年)从设计时就考虑了多项目、多版本的需求
- Java 的企业级应用背景决定了它需要严格的依赖隔离
解决办法
如果没有虚拟环境,就会出现多个项目共用一个全局的Python 环境,导致版本冲突保存依赖信息
默认情况下,当你安装了一个依赖后 项目并不会生成安装注入 package.json一样的依赖清单requirements.txt 文件,记录所有已安装的包,方便其他人重现环境。
别人只需要执行一下代码即可安装所有依赖。

