我想从CLI启动一个类似的Web应用程序:
user@server:~$ my_app web --start
Web项目是使用Flask开发的,我希望在deamon模式下使用gunicorn执行Web应用程序。
但我不明白如何从python模块执行gunicorn命令。命令是:
user@server:~$ gunicorn --bind 0.0.0.0:8000 wsgi:app --daemon
我想到了以下功能:
def start_server():
command = "gunicorn --bind 0.0.0.0:8000 wsgi:app --daemon"
subprocess.call(command, shell=True)
显然它不起作用。我想要一些允许我从python模块控制服务器(启动,状态,停止等)的东西。有可能吗?
项目结构:
├── my_app
│ ├── cli
│ │ ├── cli_app.py
│ │ ├── __init__.py
│ ├── helpers.py
│ ├── __version__.py
│ └── web
│ ├── __init__.py
│ ├── services.py
│ ├── static/
│ ├── templates/
│ │ ├── index.html
│ ├── services.py
│ ├── wsgi.py
答案 0 :(得分:0)
我用 os.chdir(这里)解决了这个问题,其中这里是wsgi模块的当前目录。
像这样的东西(server.py):
import os
import subprocess
here = os.path.abspath(os.path.dirname(__file__))
def start_server():
os.chdir(here)
command = "gunicorn --bind 0.0.0.0:8000 wsgi:app --daemon"
subprocess.call(command, shell=True)
目录结构是:
├── my_app
│ ├── cli
│ │ ├── cli_app.py
│ │ ├── __init__.py
│ ├── helpers.py
│ ├── __version__.py
│ └── web
│ ├── __init__.py
│ ├── services.py
│ ├── static/
│ ├── templates/
│ │ ├── index.html
│ ├── server.py
│ ├── wsgi.py