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

Windows 10下VSCode Bash终端执行bootstrap.sh激活Pipenv环境时出现“No such directory”错误求助

问题原因与解决方案

这个问题我之前在Windows的Git Bash环境里也碰到过,本质是Windows路径格式和Bash类shell的路径规则不兼容导致的,咱们一步步拆解:

错误根源

你遇到的报错核心是路径解析混乱:

  1. 在Bash(或sh)脚本中,双反斜杠\\会被解析成单个反斜杠\,但Bash类shell只认**正斜杠/**作为路径分隔符,Windows的反斜杠在这里会被当作转义字符处理,导致路径拼接后变成了混乱的格式(比如你看到的/Scripts/activate: No such file or directoryask-project-2vwc8e6G,就是路径被错误截断了)。
  2. pipenv --venv在Windows环境下返回的是Windows格式的路径(比如C:\Users\johng\.virtualenvs\cashman-flask-project-2vwc8e6G),这种带盘符和反斜杠的路径在Bash中无法直接被正确识别。

解决办法

方案1:转换路径分隔符(直接修复原有代码)

把脚本中的激活行改成下面这样,用tr命令把Windows路径里的反斜杠替换成Bash能识别的正斜杠:

source "$(pipenv --venv | tr '\\' '/')/Scripts/activate"

原理:tr '\\' '/'会把pipenv --venv输出的所有反斜杠替换成正斜杠,生成Bash可以正确解析的路径,比如C:/Users/johng/.virtualenvs/cashman-flask-project-2vwc8e6G/Scripts/activate。

方案2:用pipenv自带的命令(更推荐,避免路径问题)

其实不需要手动去source激活脚本,pipenv提供了更省心的方式:

  • 如果只是要启动Flask服务器,直接用pipenv run命令在虚拟环境中执行:
    pipenv run flask run
    
  • 如果一定要在脚本中激活环境,可以用pipenv --shebang生成适配当前shell的激活代码:
    eval "$(pipenv --shebang)"
    

这个命令会自动处理路径格式问题,不管是Windows还是类Unix环境都能正常工作。

方案3:切换到bash执行脚本

有时候#!/bin/sh在Windows的Bash环境下会有兼容性问题,把脚本开头改成:

#!/bin/bash

然后用bash bootstrap.sh执行脚本(而不是source bootstrap.sh,当然source也可以,但直接用bash执行更稳定)。

内容的提问来源于stack exchange,提问作者John G.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.28 09:37:44