结合咱们刚才在 Linux (WSL) 和 Windows 之间来回切换的操作,导致这个"文件失踪"最可能有两个原因:
-
Linux 虚拟环境的"幽灵残留" :你之前在 WSL 里跑过创建环境的命令。Linux 系统生成的虚拟环境结构是
.venv/bin/activate,而 Windows 需要的是.venv/Scripts/Activate.ps1。如果在切回 Windows 时,旧的 Linux.venv文件夹没被彻底删干净,Windows 进去一找,发现没有Scripts目录,就会报这个错。 -
刚才创建环境的命令其实失败了(或被静音拦截了) :在 Windows PowerShell 里执行
python -m venv .venv时,如果系统没有正确配置 Python 环境变量,或者触发了微软商店(Microsoft Store)的别名拦截,它可能会瞬间结束,既不报错,也没有真正生成完整的环境文件。
我们现在用最稳妥的方式,彻底清理并重建一次。请严格按顺序在 PowerShell 里执行:
第一步:暴力清理案发现场
先把那个有问题的(或者根本不存在的)文件夹彻底干掉。即使报错说找不到文件也无所谓:
Remove-Item -Recurse -Force .venv
第二步:确保使用正确的 Python 命令重建
很多时候 Windows 下 python 命令会被劫持,使用 py 命令往往更稳健。执行:
py -m venv .venv
(注意:如果提示找不到 py,请换回 python -m venv .venv。敲下回车后,稍微等几秒钟,如果没有任何报错且光标恢复,说明真正创建成功了。)
第三步:验证是否真正生成了脚本
我们查一下它到底生成了没:
ls .\.venv\Scripts\Activate.ps1
如果输出了一行包含 Activate.ps1 的文件信息,说明稳了!可以进入下一步。如果报错说找不到,说明你的 Windows 根本没装好 Python。
第四步:激活环境
确认文件存在后,再次执行激活命令:
.\.venv\Scripts\Activate.ps1
成功的话,你的命令行最左侧就会戴上一顶绿色的 (.venv) 帽子。戴上帽子后,直接无脑 pip install -r requirements.txt pytest pytest-asyncio 然后跑测试就行!如果第三步就卡住了,告诉我,咱们来排查 Windows 的 Python 安装问题。