之前在处理其它需求时,发现只要用venv目录下的python.exe来解释py代码就可以正常运行。本来以为完事了,突然想起来,这样的话根本没有运行Activate命令,没有进入Python虚拟环境啊。于是稍微研究了一下这个问题。
[Activate]
看了下Activate源码,其中最重要的动作是把venv虚拟环境的路径临时添加到系统Path路径最前面,这样venv的pip命令就能把模块(库)安装到虚拟环境目录里。Path配置的信息可以在PowerShell里,通过 $env:Path 命令查看,能够清楚的看到运行Activate之后venv目录添加到了Path配置的最前面。
PowerShell中,通过 $env:Path 指令查看Path信息
运行Activate之后虚拟目录添加到了Path配置的最前面
[是否Activate进入虚拟环境对pip的影响]
写一个py测试文件,引入os模块(库),然后执行 os.system("pip list")
Activate进入虚拟环境,执行,列出venv中已经添加的模块;用系统Python执行,列出系统Python中已经添加的模块。
不Activate虚拟环境,直接用venv目录里的python.exe执行,列出系统Python中添加的模块
也就是说不Activate进入虚拟环境,会调用系统Python的pip命令
[是否Activate虚拟环境对Python.exe执行py代码有