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

如何通过.sh脚本在pipenv虚拟环境中运行.py文件并解决子shell阻塞问题

问题解决方法

核心原因

pipenv shell的设计逻辑是启动一个交互式子shell,父脚本会等待该子shell手动退出后才会执行后续命令,你遇到的现象是正常的设计结果,并非代码报错。

可用解决方案

  • 方案1(最推荐):直接使用pipenv run执行目标命令,完全不需要启动交互式子shell
    修正后的run.sh内容如下:
    #!/bin/bash
    # 切换到项目根目录,绝对路径不需要加前缀./
    cd /home/.../myprojects
    # 直接在虚拟环境中运行你的python脚本
    pipenv run python myfile.py
    
    如果你已经在Pipfile的[scripts]块中自定义了脚本(比如my_script = "python myfile.py"),直接把最后一行替换为pipenv run my_script即可,无需其他修改。
  • 方案2:如果需要在虚拟环境中执行多条命令,可通过子shell输入重定向实现自动执行
    脚本内容参考:
    #!/bin/bash
    cd /home/.../myprojects
    pipenv shell << EOF
    # 以下命令都会自动在虚拟环境中按顺序执行,无需手动操作
    python myfile.py
    # 可添加更多需要执行的命令
    EOF
    

内容的提问来源于stack exchange,提问作者Federico Perez Diduch

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 15:54:00