【发布时间】:2019-10-09 03:21:15
【问题描述】:
这里是 Python/Django 新手!
在我的新项目中,我能够加载 django 模板页面和管理部分,以及更新和删除管理中的内容......我已经能够毫无问题地收集静态,我也可以运行所有来自 bash 的带有 manage.py 的命令,都来自 virtualenv 内部。
我被卡住的地方是尝试通过子进程从应用程序的 views.py 运行“python manage.py check”,例如:
some_app/views.py
from django.shortcuts import render
from django.http import HttpResponse
import subprocess
import shlex
def home(request):
cmd = 'python manage.py check'
subprocess.Popen(shlex.split(cmd))
return HttpResponse("<html><body>Hello World</body></html>")
HTML“Hello World”加载正常,子进程命令导致 Apache 错误:
"python: can't open file 'manage.py': [Errno 2] No such file or directory".
"python: can't open file '../myweb/manage.py': [Errno 2] No such file or directory".
我不确定我知道这是为什么,这是我的文件结构:
- /var/www/project (venv)
- bin/
- 包括/
- lib/
- 分享/
- 我的网站/
- db.sqlite3
- manage.py
- 我的网络/
- some_app/
- views.py
- 等等...
- 静态/
- 模板/
如果有人有任何提示,我将不胜感激!
设置信息:
- Ubuntu 服务器 18.04
- Apache 2.4.29
- virtualenv w/python 3.6.7
- Django2.2.1
【问题讨论】:
-
不要这样做。使用
call_command()。
标签: django apache virtualenv ubuntu-18.04 django-manage.py