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

Git Bash中Django项目setup.sh脚本依赖安装至全局环境问题

Django项目setup.sh脚本依赖安装到全局环境的修复方案

问题情况

在Windows机器上用Git Bash运行项目根目录的setup.sh脚本时,发现依赖都被安装到了全局Python环境,venv目录里没有对应的包,安装时提示Requirement already satisfied,最终因依赖冲突失败。但手动执行相同步骤一切正常。

错误原因

你的脚本有两个关键问题:

  1. 虚拟环境激活命令拼写错误:脚本里写的是source ./venv/Scripts/active,正确的命令应该是source ./venv/Scripts/activate(少了末尾的t),导致虚拟环境根本没激活,后续的pip和python命令还是用的全局环境。
  2. 全局环境提前执行pip操作:在创建虚拟环境前就运行了pip install --upgrade pip和pip install virtualenv,这两步会直接修改全局Python环境,而且Windows系统自带venv模块,不需要额外安装virtualenv。

修复后的setup.sh脚本

setupBackend() {
  echo "--------------------------- 创建虚拟环境 ----------------------"
  # 使用Python自带的venv创建虚拟环境,无需额外安装virtualenv
  python -m venv venv

  # 激活虚拟环境(Git Bash下Windows的正确路径)
  if source ./venv/Scripts/activate; then
    echo "虚拟环境激活成功"
  else
    echo "虚拟环境激活失败,请检查路径"
    exit 1
  fi

  echo "----------------------- 升级pip并安装依赖 ------------------------------"
  # 使用虚拟环境内的pip升级自身
  python -m pip install --upgrade pip
  # 安装项目依赖
  python -m pip install -r requirements.txt

  echo "----------------------- 启动Django服务器 -------------------------"
  python ./kudelasz/manage.py runserver
}

# 执行函数
setupBackend

额外优化建议

  • 移除requirements.txt中的virtualenv:这个包是用来创建虚拟环境的,不需要作为项目依赖安装到虚拟环境里,从你的依赖列表中删掉virtualenv==20.23.1。
  • 检查虚拟环境是否已存在:可以在创建前加判断,避免重复创建:
    if [ -d "venv" ]; then
      echo "虚拟环境已存在,直接激活"
    else
      python -m venv venv
    fi
    
  • 使用python -m pip代替pip:这样能确保调用的是当前激活虚拟环境中的pip,避免全局pip干扰。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 17:23:17