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

如何在VS Code终端用单个Python脚本启动Django项目并执行多命令?

当然可以!用一个Python脚本一键启动Django项目

我之前也碰到过类似的需求,直接给你两种实用方案,轻松搞定这三个命令的自动执行:

方案一:用pipenv run跳过shell激活 + 多线程并行运行

其实没必要手动进入pipenv shell,用pipenv run就能直接在虚拟环境上下文里执行命令,更适合脚本自动化。另外Django服务和Sass编译器都是持续运行的进程,得用多线程让它们同时跑起来。

直接在项目根目录(和manage.py同目录)创建start.py,内容如下:

import subprocess
import threading

def run_command(cmd):
    """封装命令执行逻辑,包含错误处理"""
    try:
        subprocess.run(cmd, check=True, shell=True)
    except subprocess.CalledProcessError as e:
        print(f"⚠️ 命令执行失败: {cmd}\n错误详情: {e}")

if __name__ == "__main__":
    # 可选:先确保虚拟环境依赖都安装完成,避免启动时出错
    print("🔍 检查并安装项目依赖...")
    run_command("pipenv install")

    # 准备需要并行运行的两个核心命令(通过pipenv run直接使用虚拟环境)
    django_server_cmd = "pipenv run python manage.py runserver"
    sass_watch_cmd = "pipenv run python manage.py sass-compiler --watch"

    # 启动线程同时运行两个服务
    print("🚀 启动Django服务和Sass编译器...")
    django_thread = threading.Thread(target=run_command, args=(django_server_cmd,))
    sass_thread = threading.Thread(target=run_command, args=(sass_watch_cmd,))

    django_thread.start()
    sass_thread.start()

    # 等待线程运行(需要停止时按Ctrl+C即可)
    django_thread.join()
    sass_thread.join()

方案二:强制进入pipenv shell上下文执行

如果你一定要先激活pipenv shell再执行命令,可以通过传递脚本内容的方式实现,但这种方式兼容性稍差(依赖bash环境),示例代码如下:

import subprocess

if __name__ == "__main__":
    # 构造shell脚本内容,用后台运行&和wait保证两个服务同时存活
    startup_script = """
pipenv shell << EOF
python manage.py runserver &
python manage.py sass-compiler --watch &
wait
EOF
"""
    try:
        subprocess.run(startup_script, check=True, shell=True, executable="/bin/bash")
    except subprocess.CalledProcessError as e:
        print(f"❌ 启动失败: {e}")

注意:Windows环境下需要用Git Bash或WSL来运行这个脚本,否则会出现shell语法兼容问题。

使用步骤

  1. 把start.py放到Django项目根目录
  2. 在VS Code终端直接执行:python start.py
  3. 要停止所有服务,直接按Ctrl+C即可

这样就能一键搞定所有启动步骤啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.11 08:18:42