You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何编写Bat脚本打开WSL并激活虚拟环境(venv)?

解决WSL中通过Bat脚本激活Python虚拟环境报错问题

你的Bat脚本执行时提示'source' is not recognized as an internal or external command, operable program or batch file.,问题出在Bat对多行引号的解析逻辑上——换行符会被当成命令分隔,导致source命令被Windows的CMD而非WSL的Bash执行,自然会报错。

修复方案一:单行命令传递(最直接)

把WSL内要执行的命令合并成单行,用分号分隔,确保整个字符串被正确传给Bash执行,同时添加exec bash保持激活后的环境会话:

@ECHO OFF
ECHO Opening Django venv on WSL...

wsl bash -c "echo 'Running WSL successful'; echo 'Activating Django venv...'; source venv/Django_cups/bin/activate; echo 'Virtual environment activated successfully'; exec bash"
  • exec bash会替换当前Bash进程,启动一个保持虚拟环境激活状态的新会话,无需再单独调用wsl命令,避免新开的会话丢失环境。

修复方案二:用独立Bash脚本(可读性更好)

如果需要保持命令的多行可读性,可以把WSL内的逻辑写到单独的Bash脚本中:

  1. 在WSL的用户主目录创建activate_venv.sh:
#!/bin/bash
echo 'Running WSL successful'
echo 'Activating Django venv...'
source venv/Django_cups/bin/activate
echo 'Virtual environment activated successfully'
exec bash
  1. 给脚本添加执行权限:
chmod +x ~/activate_venv.sh
  1. 修改Bat脚本调用这个脚本:
@ECHO OFF
ECHO Opening Django venv on WSL...
wsl bash -c "~/activate_venv.sh"

内容的提问来源于stack exchange,提问作者Grey Cat

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 03:02:05