Python虚拟环境符号链接原理:为何包安装到site-packages?
Python虚拟环境包安装路径的控制机制
- 激活脚本修改PATH优先级
激活虚拟环境时(比如执行source my_venv/bin/activate),激活脚本会把虚拟环境的bin目录放到系统PATH环境变量的最前端。这样你敲python或pip时,系统会优先调用虚拟环境里的版本,而不是全局的。 - pyvenv.cfg配置文件的引导
虚拟环境根目录下的pyvenv.cfg是核心配置文件,里面的参数会明确Python解释器的包路径规则:include-system-site-packages默认设为false,意味着Python不会依赖全局的site-packages目录,新安装的包也不会存到那里- 该文件虽关联了全局Python的路径,但会强制解释器优先使用虚拟环境自身的
lib/pythonX.X/site-packages目录来存放和查找包
- pip与虚拟环境的绑定
虚拟环境bin目录下的pip是和当前虚拟环境绑定的独立脚本,执行pip install时,它会直接把包安装到虚拟环境的site-packages目录,无需额外指定路径。
内容的提问来源于stack exchange,提问作者felix001
相关产品推荐
相关产品推荐

