我從源代碼中安裝了mod-wsgi,使用Python3(Apache 2.4.46在Amazon Linux 2 VM上)。
每當我重新加載我的wsgi守護行程時,我的Apache錯誤日志中就會出現以下錯誤:
Exception ignored in: < generator object path at 0x7f128e93fdd0>
回溯(最近一次呼叫)。
檔案 "/usr/lib64/python3.7/importlib/resources.py", line 190, in path
NameError: name 'FileNotFoundError' is not defined
我認為這是在守護程式關閉時發生的,因為我在關閉Apache時也看到了這個錯誤。
我在 python3 的虛擬環境中運行我的專案。 這是我的Apache配置:
<VirtualHost *:443>
<目錄 /var/www/html/project/>
選項 ExecCGI FollowSymlinks -SymLinksIfOwnerMatch
要求all granted
</Directory>
錯誤日志 /home/ec2-user/apache_project_errors.log
服務器名稱project.projtds.net
DocumentRoot /var/www/html/project/檔案名。
WSGIDaemonProcess project threads=1 processes=2 python-home=/var/www/html/project/venv home=/var/www/html/project
WSGIScriptAlias / /var/www/html/project/project.wsgi process-group=project
WSGIScriptReloading On
</VirtualHost>
而我的.wsgi是相當簡單的:
from project import create_app
應用 = create_app()
所有這些都在呼叫一個flask應用程式(project.py):
fromflask import Flask
def create_app()。
app = Flask(__name__, instance_relative_config=False)
@app.route("/")
def home()。
import sys
string = f "Python版本{sys.version} 版本資訊{sys.version_info}"
return string
return app
目前,我只是檢查了Python版本,因為這個錯誤是典型的Python2解釋器翻閱Python3代碼的錯誤。但是sys.version確實顯示為3.7,我可以在我的專案中運行python3的特定呼叫。
我檢查了Apache conf(/etc/httpd/conf.modules.d/wsgi.conf)中wsgi模塊的加載方式:
LoadModule wsgi_module modules/mod_wsgi.so
我在同一Apache服務器下運行的其他非wsgi專案中沒有看到這個錯誤。 我不知道如何解決這個錯誤。它并不妨礙我運行我的專案,但我很想知道這個錯誤到底來自哪里,為什么。
有什么方法可以獲得mod-wsgi的除錯日志嗎?我需要在我的專案中做什么嗎?(flask, .wsgi, etc.)
uj5u.com熱心網友回復:
我缺少一個引數:
我缺少一個引數。
<Directory /var/www/html/project/>
選項 ExecCGI FollowSymlinks -SymLinksIfOwnerMatch
要求all granted
</Directory>
應該是:
<Directory /var/www/html/jiraiop/>
選項 ExecCGI FollowSymlinks -SymLinksIfOwnerMatch
要求all granted
WSGIApplicationGroup %{GLOBAL}。
</Directory>
https://modwsgi.readthedocs.io/en/develop/configuration-directives/WSGIApplicationGroup.html
全域應用程式組中的任何WSGI應用程式將總是在Python初始化時創建的第一個解釋器的背景關系中執行,即處理請求的行程。
我認為這是必要的,以確保解釋器是 python3。我不知道為什么不這樣做會有困難,但是......。這就解決了。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/320001.html
標籤:
