Python: 无法使用 subprocess.run 启动 JSON 服务器
Python: Unable to start the JSON server using subprocess.run
Objective : 使用 python 从 windows 命令提示符启动 JSON 服务器并验证它实际上已经首先检查“http://localhost:3000”之类的字符串(请参阅屏幕截图中的命令输出)
已识别问题: 由于该命令未返回任何内容,因此我无法验证任何内容。
什么是 possible 解决方案或解决方法?
代码编写:
我试过使用:
ret = subprocess.run('json-server --port 3000 --watch db.json', shell=True)
此外,尝试了子流程中的以下方法和 os 类
subprocess.call
subprocess.check_output
os.system
使用subprocess.Popen作为新进程中的子程序启动json-server。然后通过向 localhost:3000
.
发送 http 请求来验证它是否已启动
正在启动服务器:
import subprocess
from signal import SIGKILL
p = subprocess.Popen('json-server --port 3000 --watch /tmp/db.json', shell=True)
# printing output of json-server
try:
outs, errs = p.communicate(timeout=15)
print(outs)
except subprocess.TimeoutExpired:
p.send_signal(SIGKILL)
outs, errs = p.communicate()
发送验证请求:
import urllib.request
with urllib.request.urlopen("http://localhost:3000") as res:
print(res.status)
请注意 json-server 是守护进程,在您停止、终止它或遇到意外异常之前不会停止。
因此,除非您在 Python 代码或 windows 进程浏览器中停止,否则执行此代码后它将是 运行。
Objective : 使用 python 从 windows 命令提示符启动 JSON 服务器并验证它实际上已经首先检查“http://localhost:3000”之类的字符串(请参阅屏幕截图中的命令输出)
已识别问题: 由于该命令未返回任何内容,因此我无法验证任何内容。 什么是 possible 解决方案或解决方法?
代码编写:
我试过使用:
ret = subprocess.run('json-server --port 3000 --watch db.json', shell=True)
此外,尝试了子流程中的以下方法和 os 类
subprocess.call
subprocess.check_output
os.system
使用subprocess.Popen作为新进程中的子程序启动json-server。然后通过向 localhost:3000
.
正在启动服务器:
import subprocess
from signal import SIGKILL
p = subprocess.Popen('json-server --port 3000 --watch /tmp/db.json', shell=True)
# printing output of json-server
try:
outs, errs = p.communicate(timeout=15)
print(outs)
except subprocess.TimeoutExpired:
p.send_signal(SIGKILL)
outs, errs = p.communicate()
发送验证请求:
import urllib.request
with urllib.request.urlopen("http://localhost:3000") as res:
print(res.status)
请注意 json-server 是守护进程,在您停止、终止它或遇到意外异常之前不会停止。
因此,除非您在 Python 代码或 windows 进程浏览器中停止,否则执行此代码后它将是 运行。