python虚拟环境创建 灰色/绿色

尝试在vscode用venv方法和virtualvenv方法创建虚拟环境,创建成功并激活之后,虚拟环境的名称分别是绿色和灰色,只是颜色的不同,在vscode终端的提示符显示上有所差别。

 venvvirtualenv 是两种不同的 Python 虚拟环境管理工具。

venv 是 Python 3.3+ 自带的标准库,用于创建和管理 Python 虚拟环境。在使用 venv 创建虚拟环境后,激活虚拟环境会修改终端的环境变量,将虚拟环境的 Python 解释器添加到 PATH 中,以及修改终端提示符的显示,使其显示当前激活的虚拟环境

virtualenv 是第三方库,用于创建和管理 Python 虚拟环境。在使用 virtualenv 创建虚拟环境后,激活虚拟环境只会修改终端的环境变量,将虚拟环境的 Python 解释器添加到 PATH 中,而不会修改终端提示符的显示。

所以,在使用 virtualenv 创建的虚拟环境中,激活虚拟环境后,终端提示符的颜色不会改变,仍然是灰色。而在使用 venv 创建的虚拟环境中,激活虚拟环境后,终端提示符的颜色会改变为绿色,以提示当前处于激活的虚拟环境中。

无论是 venv 还是 virtualenv 创建的虚拟环境,都能够正常使用。只是在终端中的提示符显示上有所差别。

virtualenv是一个独立的第三方库,它不会修改终端提示符的显示。它的作用是创建一个独立的Python环境,并将该环境与当前的终端会话关联起来,以便在该终端会话中使用该Python环境。在使用virtualenv创建的虚拟环境中,激活虚拟环境后,终端提示符的显示不会改变,仍然是灰色。这是因为virtualenv并没有提供直接修改终端提示符的功能。

venv 是 Python 内置的模块,它提供了创建和管理虚拟环境的功能。当你使用 venv 创建虚拟环境时,它会在虚拟环境的根目录下创建一个 activate 脚本,该脚本会在激活虚拟环境时被执行。

activate 脚本中,venv 会修改终端的环境变量,将当前虚拟环境的路径添加到 PATH 环境变量中,并修改 PS1 环境变量,即终端提示符的显示格式。通过修改 PS1 环境变量,venv 实现了改变终端提示符的显示。

在 Windows 系统中,PS1 环境变量控制着 PowerShell 终端的提示符显示,它的默认值是 $env:USERNAME $env:USERDOMAIN\$env:COMPUTERNAME $PWD> 。当你激活一个 venv 虚拟环境时,venv 会将 PS1 环境变量修改为包含虚拟环境名称的格式,例如 (venv) $env:USERNAME $env:USERDOMAIN\$env:COMPUTERNAME $PWD> 。这样,终端提示符的显示就能够反映当前所激活的虚拟环境。

需要注意的是,这种修改终端提示符的方式是特定于 PowerShell 终端的,其他终端可能使用不同的环境变量来控制提示符的显示。因此,在其他终端中使用 venv 创建的虚拟环境可能不会有相同的提示符显示变化。

venv通过修改终端的提示符显示来改变颜色。在激活虚拟环境时,venv会修改终端的环境变量,并将当前虚拟环境的路径添加到提示符中。终端根据这些环境变量来确定提示符的显示内容和样式,从而改变颜色。

具体来说,venv会将当前虚拟环境的路径添加到环境变量PS1中,PS1是控制终端提示符显示的环境变量。添加的路径会被包裹在一对转义字符中,表示该路径应该显示为绿色。当终端读取PS1的值时,会根据其中的转义字符来确定颜色。

例如,如果使用venv创建的虚拟环境的路径是C:\path\to\venv,那么在激活虚拟环境后,venv会将PS1的值修改为类似以下的形式:

\[\033[32m\](venv) \[\033[0m\]\w\[\033[0m\]$

其中\[\033[32m\]表示开始绿色显示,\[\033[0m\]表示结束颜色显示,\w表示当前工作目录的路径。

终端读取修改后的PS1的值,并根据其中的转义字符来确定提示符的显示内容和颜色。所以,当虚拟环境激活后,终端提示符的颜色会变为绿色,并显示(venv)以及当前工作目录的路径。

virtualenv在创建虚拟环境时会修改终端的环境变量,包括PATHPS1(终端提示符的显示)。但与venv不同的是,virtualenv没有涉及终端提示符颜色的修改,因此在激活虚拟环境后,终端提示符的颜色仍然是灰色。而venv会将终端提示符的颜色修改为绿色,以显示当前处于激活的虚拟环境中。这只是在终端显示上的区别,对于虚拟环境的功能和使用来说,并没有影响。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值