我最近設定了 apache 服務器來在 Windows 上為我的燒瓶應用程式提供服務。讓我告訴你我的設定。
- 我已經通過 apache Lounge 下載了 apache。已將其提取到 C:\Apache24 中。
- 我確實在虛擬 python 3.7.7 中安裝了 mod_wsgi
- 復制 httpd.conf 檔案中的 mod_wsgi 配置
- 在 Apache 的 conf 目錄下創建了 my_app.conf
但我在 apache 的 error.log 檔案中收到以下錯誤...
[Fri Nov 11 18:44:00.985814 2022] [wsgi:error] [pid 9456:tid 1396] [client 127.0.0.1:58152] mod_wsgi (pid=9456): Exception occurred processing WSGI script 'J:/tools/pipecrew/ashish/workspace/tools/wsgi_scripts/shotgrid_ami_handler.wsgi'.
[Fri Nov 11 18:44:00.985814 2022] [wsgi:error] [pid 9456:tid 1396] [client 127.0.0.1:58152] TypeError: 'module' object is not callable\r
[Fri Nov 11 18:44:01.020776 2022] [wsgi:error] [pid 9456:tid 1392] [client 127.0.0.1:58153] mod_wsgi (pid=9456): Exception occurred processing WSGI script 'J:/tools/pipecrew/ashish/workspace/tools/wsgi_scripts/shotgrid_ami_handler.wsgi'., referer: http://fpservices.in/boom
[Fri Nov 11 18:44:01.020776 2022] [wsgi:error] [pid 9456:tid 1392] [client 127.0.0.1:58153] TypeError: 'module' object is not callable\r, referer: http://fpservices.in/boom
這是我剩下的片段
- Apache httpd.conf
LoadFile "J:/tools/rez_packages/python/3.7.7/platform-windows/python37.dll"
LoadModule wsgi_module "D:/virtual_python/python-3/mod_wsgi/lib/site-packages/mod_wsgi/server/mod_wsgi.cp37-win_amd64.pyd"
WSGIPythonHome "D:/virtual_python/python-3/mod_wsgi"
# Include Flask File
Include conf/shotgrid_ami_handler.conf
- 我的flask app conf檔案在Apache的conf目錄中
<VirtualHost *:80>
ServerName fpservices.in
WSGIScriptAlias / J:/tools/pipecrew/ashish/workspace/tools/wsgi_scripts/shotgrid_ami_handler.wsgi
<Directory J:/tools/pipecrew/ashish/workspace/tools/shotgrid_ami_handler>
WSGIScriptReloading On
Require all granted
</Directory>
</VirtualHost>
- 和我的wsgi檔案...
import sys
sys.path.insert(0, 'J:\\tools\\pipecrew\\ashish\\workspace\\tools')
from shotgrid_ami_handler import app as application
- 最后是我的燒瓶應用程式...
from flask import Flask, request, Response
app = Flask(__name__)
@app.route('/boom', methods=['GET', 'POST'])
def boom():
return 'boom!'
if __name__ == '__main__':
app.run(host='0.0.0.0', port=4576, debug=True)
有人可以指出為什么我在這里得到“模塊”物件不可呼叫錯誤嗎?
我正在嘗試執行我的燒瓶路由功能以通過我的 Apache 服務器執行。但是我在 apache error.log 檔案中沒有得到足夠的錯誤資訊來嘗試一些東西。
uj5u.com熱心網友回復:
這是一個非常愚蠢的錯誤。在我的 wsgi 腳本中,我將主燒瓶模塊匯入為應用程式物件,而不是模塊內的 Flask 物件。所以我的燒瓶應用程式有一個app包含 Flask 物件的模塊app。所以而不是這樣做
from shotgrid_ami_handler import app as application
我應該這樣做
from shotgrid_ami_handler.app import app as application
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/533266.html
