首页 > 解决方案 > 目标 WSGI 脚本“/var/www/kmj/app.wsgi”无法作为 Python 模块加载

问题描述

烧瓶应用程序在没有 Apache 的情况下运行良好,但是当我在 app.py 上使用“import scenedetect”在 Apache-flask 环境中部署应用程序时,apache 日志显示:

113 [wsgi:error] [pid 16590] [remote 58.229.209.118:2042] mod_wsgi (pid=16590): **Target WSGI script '/var/www/kmj/app.wsgi' cannot be loaded as Python module.**

114 [wsgi:error] [pid 16590] [remote 58.229.209.118:2042] mod_wsgi (pid=16590): Exception occurred processing WSGI script '/var/www/kmj/app.wsgi'.
115 [wsgi:error] [pid 16590] [remote 58.229.209.118:2042] Traceback (most recent call last):
116 [wsgi:error] [pid 16590] [remote 58.229.209.118:2042]   File "/var/www/kmj/app.wsgi", line 4, in <module>
117 [wsgi:error] [pid 16590] [remote 58.229.209.118:2042]     from app import app as application
118 [wsgi:error] [pid 16590] [remote 58.229.209.118:2042]   File "/var/www/kmj/app.py", line 5, in <module>
119 [wsgi:error] [pid 16590] [remote 58.229.209.118:2042]     from scenedetect import VideoManager
120 [wsgi:error] [pid 16590] [remote 58.229.209.118:2042]   File "/home/kmj/anaconda3/envs/smartFashion/lib/python3.7/site-packages/scenedetect/__init__
    .py", line 41, in <module>
121 [wsgi:error] [pid 16590] [remote 58.229.209.118:2042]     from scenedetect.scene_manager import SceneManager
122 [wsgi:error] [pid 16590] [remote 58.229.209.118:2042]   File "/home/kmj/anaconda3/envs/smartFashion/lib/python3.7/site-packages/scenedetect/scene_manager.py", line 57, in <module>
123 [wsgi:error] [pid 16590] [remote 58.229.209.118:2042]     import cv2
124 [wsgi:error] [pid 16590] [remote 58.229.209.118:2042]   File "/home/kmj/anaconda3/envs/smartFashion/lib/python3.7/site-packages/cv2/__init__.py", line 5, in <module>
125 [wsgi:error] [pid 16590] [remote 58.229.209.118:2042]     from .cv2 import *

126 [wsgi:error] [pid 16590] [remote 58.229.209.118:2042] ModuleNotFoundError: **No module named 'cv2.cv2'**

conda虚拟 环境 /home/kmj/anaconda3/envs/smartFashion/lib/python3.7/site-packages

drwxrwxr-x 36 kmj www-data 4096 4 月 29 日 14:05 站点包

(smartFashion)$conda list | grep ...
python                  3.7.10
opencv-python           4.5.1
ffmpeg                  4.2.2
scenedetect             0.5.5
flask                   1.1.2

安装 mod_wsgi

$ dpkg -l | grep wsgi
ii libapache2-mod-wsgi-py3    4.5.17-1ubuntu1    amd64    Python 3 WSGI adapter module for Apache

$ sudo a2enmod wsgi

ls -al /var/www/ | grep 智能时尚

drwxrwxr-x  5 kmj      www-data 4096  4월 29 10:12 smartfashion.com

/etc/apache2/site-available/smartfashion.com.conf

<VirtualHost *:80>

        ServerAdmin admin@smartfashion.com
        ServerName smartfashion.com
        DocumentRoot /var/www/smartfashion.com
        DirectoryIndex index.html

        <IfModule mod_wsgi.c>
                WSGIDaemonProcess smartfashion user=kmj group=www-data threads=5  python-path=/home/kmj/anaconda3/envs/smartFashion/lib/python3.7/site-packages/
                WSGIScriptAlias / /var/www/smartfashion.com/app.wsgi
                WSGIScriptReloading On
        </IfModule>

        <Directory /var/www/smartfashion.com >
                WSGIProcessGroup smartfashion
                WSGIApplicationGroup %{GLOBAL}
                Order deny,allow
                Allow from all

        <Directory /home/kmj/anaconda3/envs/smartFashion/lib/python3.7/site-packages>
                WSGIApplicationGroup %{GLOBAL}
                Require all granted
        </Directory>

        ErrorLog ${APACHE_LOG_DIR}/smartfashion.com-error.log
        CustomLog ${APACHE_LOG_DIR}/smartfashion.com-access.log combined

</VirtualHost>

应用程序.wsgi

import sys

sys.path.insert(0, "/var/www/smartfashion.com")
sys.path.append("/home/kmj/anaconda3/envs/smartFashion/lib/python3.7/site-packages/")
from app import app as application

我努力了:

,但无法解决问题。

请让我知道我想念什么......!

标签: python-3.xapacheflask

解决方案


推荐阅读