虚拟环境中多个activate:.bat、.fish、ps1以及无后缀的
建立虚拟环境后,.venv\Scripts目录下有多个activate,以后缀来分:无后缀、.bat、.fish、ps1,它们是为了适配不同的命令行/Shell环境而设计的——不同的Shell(命令解释器)有各自的语法规则,激活虚拟环境的脚本必须遵循对应环境的语法才能正常工作。
各后缀activate
脚本的作用:
文件名/后缀 | 适用环境(Shell/命令行工具) | 作用与特点 |
---|---|---|
activate (无后缀) | Unix-like Shell环境(如Bash、Zsh、Sh等) | 适用于Linux、macOS的终端,或Windows上的类Unix环境(如Git Bash、WSL)。 语法遵循Shell规范(用 export 设置环境变量),激活后虚拟环境会在命令行前缀显示(如(venv) )。 |
activate.bat | Windows原生CMD 命令提示符 | 适用于Windows的CMD 环境(最经典的命令行工具)。语法遵循Windows批处理规范(用 set 设置环境变量),激活后会在CMD前缀显示虚拟环境名称。 |
activate.ps1 | Windows PowerShell (包括PowerShell Core) | 适用于Windows的PowerShell环境(功能更强大的命令行工具)。 语法遵循PowerShell规范(用 $env: 设置环境变量),支持更多高级特性(如脚本权限控制)。 |
activate.fish | fish Shell(一种现代交互式Shell) | 专门为fish Shell设计(常见于Linux/macOS,Windows上较少用)。语法遵循fish Shell的独特规范,激活后适配fish的交互体验。 |
Windows中应该运行哪一个?
取决于你正在使用的命令行工具:
-
如果你打开的是
CMD命令提示符
(快捷键Win+R
输入cmd
):运行activate.bat
操作:在Scripts
目录下输入activate.bat
或直接输入activate
(CMD会自动识别.bat
后缀)。 -
如果你打开的是
PowerShell
(快捷键Win+R
输入powershell
):运行activate.ps1
操作:在Scripts
目录下输入.\activate.ps1
(PowerShell默认需要显式指定路径,且可能需要先开启脚本执行权限)。 -
如果你在Windows上使用
类Unix环境
(如Git Bash、WSL):运行无后缀的activate
操作:在Scripts
目录下输入source activate
或./activate
(遵循Shell的执行方式)。
设置环境变量
当然,可以把虚拟环境中需要的一些环境变量的设置放在相应的activate中,这样,一旦启动了该虚拟环境,也就设置了环境变量。
不同的activate文件中设置环境变量的方法不同,参见:set 与 export设置环境变量
另外,设置环境变量时需要避坑,参见:set不要引号不要空格