2016-02-05 92 views
0

我不知道我到底错过了什么。下面是我至今:错误:在wsgi文件中部署Flask应用程序时导入错误

WSGI

/opt/tools/apps/scheduler/scheduler.wsgi

其内容

from scheduler import app as application 

init.py

/opt/tools/apps/scheduler/scheduler/__init__.py

在Apache日志错误

[Thu Feb 04 21:54:30 2016] [error] [client 10.57.136.99] mod_wsgi (pid=45485): Target WSGI script '/opt/tools/apps/scheduler/scheduler.wsgi' cannot be loaded as Python module. 
[Thu Feb 04 21:54:30 2016] [error] [client 10.57.136.99] mod_wsgi (pid=45485): Exception occurred processing WSGI script '/opt/tools/apps/scheduler/scheduler.wsgi'. 
[Thu Feb 04 21:54:30 2016] [error] [client 10.57.136.99] Traceback (most recent call last): 
[Thu Feb 04 21:54:30 2016] [error] [client 10.57.136.99] File "/opt/tools/apps/scheduler/scheduler.wsgi", line 1, in <module> 
[Thu Feb 04 21:54:30 2016] [error] [client 10.57.136.99]  from scheduler import app as application 
[Thu Feb 04 21:54:30 2016] [error] [client 10.57.136.99] ImportError: No module named scheduler 

wsgi.conf

/etc/httpd/conf.d

LoadModule wsgi_module modules/mod_wsgi.so 
WSGIPythonHome /opt/tools 
WSGISocketPrefix run/wsgi 

WSGIDaemonProcess scheduler user=abcd group=efgh processes=4 
WSGIScriptAlias /scheduler /opt/tools/apps/scheduler/scheduler.wsgi 
<Directory /opt/tools/apps/scheduler> 
    WSGIProcessGroup scheduler 
    WSGIApplicationGroup %{RESOURCE} 
    Order deny,allow 
    Allow from all 
</Directory> 

我跟着Link1 & Link2但没有运气。这个应用程序在一台主机上正常工作(比如host-1),我试图将它部署在host-2上。

回答

1

由于您的应用程序将作为守护程序运行,因此根目录将设置为/

确保您的项目目录已添加到python PATH或让wsgi以正确的路径运行应用程序。

scheduler.wsgi应该是这样的:

# insert application path in python path 
import sys 
sys.path.insert(0, "/opt/tools/apps/scheduler") 

# launch app 
from scheduler import app as application 

还要确保Apache用户/组(www-data)访问项目:

chown -R www-data:www-data /opt/tools/apps/scheduler 
+0

更改'scheduler.wsgi'如上和权限类似于'host-1'上的内容。 :(但它没有工作,你想要更多的信息吗? –

+2

把一个'import os; print(os.getcwd())'放在你的wsgi脚本的顶部,并显示apache日志返回的内容。 – Cyrbil