当我在Apache服务器上安装python Flask并通过wsgi配置它时,导入python模块时出现错误。
Python 版本 3.8.10
Flask 版本 2.3.2
ERROR:
File "/var/www/gomed/data/www/doc.python.gomed.uz/.venv/lib/python3.8/site-packages/flask/init.py", line 1, in <module>
from . import json as json
ImportError: cannot import name json
我在
flask
服务器中为 apache
创建了一个新配置。
这是我的烧瓶配置:
<VirtualHost 127.0.0.1:8080>
ServerName doc.python.gomed.uz
DocumentRoot /var/www/gomed/data/www/doc.python.gomed.uz/
WSGIDaemonProcess app user=gomed group=gomed threads=5 python-home=/var/www/gomed/data/www/doc.python.gomed.uz/.venv python-path=/var/www/gomed/data/www/doc.python.gomed.uz/.venv/lib/python3.8/site-packages/
WSGIScriptAlias / /var/www/gomed/data/www/doc.python.gomed.uz/app.wsgi
ErrorLog ${APACHE_LOG_DIR}/flask-error.log
CustomLog ${APACHE_LOG_DIR}/flask-access.log combined
<Directory /var/www/gomed/data/www/doc.python.gomed.uz>
WSGIProcessGroup app
WSGIApplicationGroup %{GLOBAL}
Order deny,allow
Require all granted
</Directory>
</VirtualHost>
app.wsgi :
import sys
sys.path.insert(0, '/var/www/gomed/data/www/doc.python.gomed.uz/.venv/lib/python3.8/site-packages/')
sys.path.insert(0,'/var/www/gomed/data/www/doc.python.gomed.uz')
sys.path.insert(0,'/usr/lib/python3.8')
from main import app as application
我重新安装了 pip 要求。
请执行以下步骤, 1.更新您的 Flask 应用程序代码以重命名
json
导入:
from flask import Flask, json as flask_json
2.更新代码后,重新加载或重新启动Apache
sudo systemctl reload apache2
3.如果需要,重新创建虚拟环境并重新安装软件包
cd /var/www/gomed/data/www/doc.python.gomed.uz/
rm -r .venv
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
4。在您的 app.wsgi 脚本中,使用虚拟环境的路径并导入您的 Flask 应用程序
import sys
sys.path.insert(0, '/var/www/gomed/data/www/doc.python.gomed.uz/.venv/lib/python3.8/site-packages/')
from main import app as application
5。再次重新加载或重新启动 Apache
sudo systemctl reload apache2
注意:这些步骤应该可以帮助您解决问题......祝你好运
#阿帕奇时代