python-3.x - 目标 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
我努力了:
- 重新创建一个 conda 虚拟环境
- 重新安装 opencv-python 和 secenedetect
- 检查文件所有者
,但无法解决问题。
请让我知道我想念什么......!
解决方案
推荐阅读
- ruby-on-rails - 部分填写时将 simple_form 设置为 nil 的 html5 日期
- vba - 如何在Word文档中选择某种颜色的所有高光
- java - 如何将 JSON 解析或读入 BaseX 的 XML 文档?
- c - 在 C 中静态初始化链表的最佳方法?
- php - 如何获取在两个模型之间定义的关系名称?
- github - 如何获得所有超过 20 星的公共 GitHub 存储库的列表?
- r - 在 tapply() 中为 sample() 分配概率
- python - 如何使角色成为图像pygame
- javascript - 对对象数组中的数组执行编辑和删除操作
- arrays - 算法将乘客分类到最近的车辆中,直到车辆满员