2016-04-21 24 views
0

我使用MOD-WSGI與Apache 2.2類型錯誤:不帶任何參數(2給出)在使用Python WSGI時2.7

我見的WSGI腳本

import sys 
sys.path.insert(0, '<path to my app>') 

from optimization_app import optimizeInstances as application 

optimization_app.py如下如下:

from flask import Flask 
from flask_restful import Api 
from resources.Optimization import OptimizationAlgo 

def optimizeInstances(): 
    optimization_app = Flask(__name__) 
    api = Api(optimization_app) 
    api.add_resource(OptimizationAlgo, '/instances') 

當我嘗試訪問該應用程序的URL,我得到了我的Apache的error_log以下

TypeError: optimizeInstances() takes no arguments (2 given) 

回答

-1

正如我所看到的你定義的optimizeInstances()沒有參數。你可能通過傳遞2個參數來調用optimizeInstances()函數。

+0

我改了名字,並確保這些是我使用它的唯一兩個地方。 – user3288346

+0

你是怎麼稱呼這個功能的。它應該如下所示:optimizeInstances() – vinod

+0

不能有任何大括號(),因爲您沒有輸入參數定義它 – vinod

0

這是因爲您使用它作爲WSGI application對象而發生的。

from optimization_app import optimizeInstances as application 

甲WSGI應用程序需要接受兩個參數environstart_response和。因此,當WSGI服務器調用該函數讓您的應用程序處理請求時,該錯誤會失敗。

您使用該功能的方式完全錯誤。您的實際WSGI應用程序正在本地範圍內的該功能內部創建,因此無論如何將如何訪問它。

建議您回頭看看Flask入門文檔。

+0

感謝您的答覆。我正在嘗試第一次使用WSGI。我在另一個[post]中添加了更多細節(http://stackoverflow.com/questions/36764390/using-python-flask-restful-with-mod-wsgi)。你可以看一下嗎? – user3288346

相關問題