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

如何在Python os.system中执行多命令?Django服务器启动异常排查

问题原因及解决办法

为什么服务器没启动

在Windows环境下,直接用os.system执行activate虚拟环境脚本时,这个批处理脚本会终止当前的cmd shell会话,导致后面的python manage.py runserver命令根本没机会执行。你看到的exit code 0只是activate脚本执行成功的返回码,和启动服务器的命令无关。

而你去掉激活命令后报模块找不到,说明全局Python环境没有安装Django,必须依赖虚拟环境里的解释器才能正常运行。

解决办法

有两种靠谱的处理方式:

方式一:用call执行激活脚本,保留shell会话

给activate命令加上call前缀,这样批处理脚本执行完后不会退出shell,后续的启动命令会在激活后的虚拟环境中运行:

import os

os.system('''
call .\match_pyinstaller\match_project\venv\Scripts\activate
python .\match_pyinstaller\match_project\manage.py runserver
''')

方式二:直接调用虚拟环境内的Python解释器(更推荐)

跳过激活虚拟环境的步骤,直接指定虚拟环境中python.exe的完整路径来运行manage.py,避免shell会话的问题,逻辑更简洁:

import os

# 拼接虚拟环境Python和manage.py的路径
venv_python = os.path.join('match_pyinstaller', 'match_project', 'venv', 'Scripts', 'python.exe')
manage_file = os.path.join('match_pyinstaller', 'match_project', 'manage.py')

os.system(f'{venv_python} {manage_file} runserver')

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 05:50:27