Проблема с развертыванием приложения flask на сервере Apache

#python #apache #flask #mod-wsgi #flask-cors

#питон #апач #колба #мод-wsgi #колба-корс

Вопрос:

Установка:

 CentOS Apache Python 3.6 flask flask-cors  

Я получаю эту ошибку при развертывании своего приложения:

 mod_wsgi (pid=18182): Failed to exec Python script file '/var/www/www.refinance.com.au/refinance/dist/refinance/wsgi.py'. mod_wsgi (pid=18182): Exception occurred processing WSGI script '/var/www/www.refinance.com.au/refinance/dist/refinance/wsgi.py'. Traceback (most recent call last):  File "/var/www/www.refinance.com.au/refinance/dist/refinance/wsgi.py", line 10, in lt;modulegt;  import app as application  File "/var/www/www.refinance.com.au/refinance/dist/refinance/app.py", line 6, in lt;modulegt;  from flask_cors import CORS ModuleNotFoundError: No module named 'flask_cors'  

Забавная (и подчеркивающая) вещь заключается в том, что у меня есть flask_cors, установленный в моей виртуальной среде, но по какой-то причине мое приложение не может его найти.

Я даже попытался напрямую добавить папку в sys.path, но это не сработало.

httpd.conf

 lt;VirtualHost 203.98.82.57:80gt;  ServerName www.refinance.com.au  WSGIDaemonProcess refinance user=apache group=apache threads=2  WSGIScriptAlias / /var/www/www.refinance.com.au/refinance/dist/refinance/wsgi.py  lt;Directory /var/www/www.refinance.com.au/dist/gt;  Require all granted  lt;/Directorygt; lt;/VirtualHostgt;  

wsgi.py

 import sys import site  site.addsitedir(  "/var/www/www.refinance.com.au/refinance/dist/refinance/lib/python3.6/site-packages" )  sys.path.insert(0, "/var/www/www.refinance.com.au/refinance/dist/refinance/")  import app as application  

app.py

 import json import os from flask import Flask, Response, request, send_from_directory from flask_cors import CORS  import sendemail  app = Flask(__name__) app.secret_key = os.environ.get("SECRET_KEY", "devel")  cors = CORS(  app,  resources={r"*": {"origins": "*"}},  supports_credentials=True, ) app.config["CORS_HEADERS"] = "Content-Type"   @app.route("/lt;path:pathgt;", methods=["GET"]) def static_proxy(path):  if path.endswith(".js"):  return send_from_directory("./", path, mimetype="application/javascript")  return send_from_directory("./", path)   @app.route("/") def root():  return send_from_directory("./", "index.html")  

Я уже потратил довольно много часов на эту проблему, но не могу найти решения. Любая помощь будет признательна.

Мои посылки: введите описание изображения здесь

Ответ №1:

Решается путем обновления моего wsgi.py файл

Я пропустил каталог «env» в своем пути и неправильно импортировал свое приложение.

Ниже приведен правильный код.

wsgi.py

 import sys import site  site.addsitedir(  # Before: "/var/www/www.refinance.com.au/refinance/lib/python3.6/site-packages"  "/var/www/www.refinance.com.au/refinance/env/lib/python3.6/site-packages" )  sys.path.insert(0, "/var/www/www.refinance.com.au/refinance/dist/refinance/")  # Before: import app as application from server import app as application