如何在WSL中激活Windows下创建的Python虚拟环境?
解决WSL中激活Windows创建的Python虚拟环境问题
问题根源
你遇到的报错主要是两个原因:
- Windows下生成的
activate脚本用的是CRLF换行符,而WSL的bash只支持Linux的LF换行符,所以会出现$'\r': command not found这类语法错误。 - Windows的Python虚拟环境激活脚本放在
Scripts目录,而Linux环境的在bin目录,所以你找bin/activate会提示不存在。
方法1:转换换行符后临时激活
如果只是临时需要用这个Windows环境,可以先转换脚本的换行符:
- 先安装换行符转换工具(没装的话):
sudo apt update && sudo apt install dos2unix - 转换
activate脚本的换行符:dos2unix ll_env/Scripts/activate - 现在就能正常激活了:
source ll_env/Scripts/activate
方法2:在WSL中重新创建适配的虚拟环境(更推荐)
Windows和WSL的系统库、文件路径差异很大,长期用Windows的虚拟环境在WSL里容易出各种兼容问题,更稳妥的做法是:
- 进入WSL中你的项目目录(比如
/mnt/c/你的项目文件夹) - 用WSL自带的Python创建新虚拟环境:
python3 -m venv ll_env_wsl - 激活新环境:
source ll_env_wsl/bin/activate - 迁移原有依赖:
- 在Windows PowerShell的原环境里导出依赖清单:
pip freeze > requirements.txt - 回到WSL的新环境,安装依赖:
pip install -r requirements.txt
- 在Windows PowerShell的原环境里导出依赖清单:
内容的提问来源于stack exchange,提问作者jong
相关产品推荐
相关产品推荐

