gpt4 book ai didi

python - 在 Apache - CentOS 上运行 Flask

转载 作者:太空宇宙 更新时间:2023-11-04 06:03:47 25 4
gpt4 key购买 nike

我设置了一个非常简单的 flask 应用程序来测试 CentOS 6 上 Apache 中的部署,但我收到以下错误:

[Sat Apr 26 12:44:20 2014] [error] mod_wsgi (pid=29782): Target WSGI script '/var/www/html/sites/rtdsllc/rtdsllc.wsgi' cannot be loaded as Python module.
[Sat Apr 26 12:44:20 2014] [error] mod_wsgi (pid=29782): Exception occurred processing WSGI script '/var/www/html/sites/rtdsllc/rtdsllc.wsgi'.
[Sat Apr 26 12:44:20 2014] [error] Traceback (most recent call last):
[Sat Apr 26 12:44:20 2014] [error] File "/var/www/html/sites/rtdsllc/rtdsllc.wsgi", line 10, in <module>
[Sat Apr 26 12:44:20 2014] [error] from rtdsllc import app as application
[Sat Apr 26 12:44:20 2014] [error] ImportError: cannot import name app

这是我的 wsgi 文件:

activate_this = '/var/www/virtualenvs/default/bin/activate_this.py'
execfile(activate_this, dict(__file__=activate_this))

path = '/var/www/html/sites/rtdsllc'

import sys
if path not in sys.path:
sys.path.append(path)

from rtdsllc import app as application

这是我的虚拟主机配置:

WSGISocketPrefix run/wsgi

<VirtualHost *:8086>

WSGIDaemonProcess rtdsllc user=apache group=apache threads=5
WSGIScriptAlias /test /var/www/html/sites/rtdsllc/rtdsllc.wsgi

ErrorLog logs/rtdsllc-error_log
CustomLog logs/rtdsllc-access_log common

<Directory /var/www/html/sites/rtdsllc/rtdsllc>
WSGIProcessGroup rtdsllc
WSGIApplicationGroup %{GLOBAL}
Order deny,allow
Allow from all
</Directory>
</VirtualHost>

这是我的 flask 应用程序:

from flask import Flask, render_template

app = Flask(__name__)

@app.route('/')
def home():
return render_template('index.html')

if __name__ == '__main__':
app.run(debug=False)

最后是我的文件夹结构:

rtdsllc/
├── rtdsllc
│   ├── __init__.py
│   ├── routes.py
│   ├── static
│   │   ├── css
│   │   ├── img
│   │   └── js
│   └── templates
│   ├── base.html
│   └── index.html
└── rtdsllc.wsgi

什么给了?我试过各种设置组合都无济于事。在 apache 中设置 Flask 应用程序的正确方法是什么?

编辑

ls -las rtdsllc/rtdsllc:

4 drwxr-xr-x. 4 apache apache 4096 Apr 26 13:07 .
4 drwxr-xr-x. 3 apache apache 4096 Apr 25 22:54 ..
0 -rw-r--r--. 1 apache apache 0 Apr 25 20:57 __init__.py
4 -rw-r--r--. 1 apache apache 134 Apr 25 22:55 __init__.pyc
4 -rw-r--r--. 1 apache apache 190 Apr 26 12:48 routes.py
4 -rw-r--r--. 1 apache apache 521 Apr 26 13:07 routes.pyc
4 drwxr-xr-x. 5 apache apache 4096 Apr 25 20:14 static
4 drwxr-xr-x. 2 apache apache 4096 Apr 25 20:19 templates

最佳答案

在做:

from rtdsllc import app as application

它将导入:

rtdsllc/rtdsllc/__init__.py

根据您的目录列表:

0 -rw-r--r--. 1 apache apache    0 Apr 25 20:57 __init__.py

该文件是空的,其中没有“app”对象可以通过导入拖入。

下面是哪个文件?

app = Flask(__name__)  

现在它不在您尝试导入它的地方。


更新 1

使用:

from rtdsllc.routes import app as application

如果您的“app”对象在“rtdsllc.routes”中。

关于python - 在 Apache - CentOS 上运行 Flask,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23314123/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com