如何解决Flask 导入错误,因为 wsgi 模块 (pyhton3.6) 使用 python2
我正在 aws 的 ec2 实例上通过 apache/wsgi 部署一个 Flask 应用程序。 我安装了 python2.7.x 和 python3.6.9。 Apache 日志指向导入错误:
from flask import Flask,jsonify,request,logging
[Thu Jul 15 19:45:35.572332 2021] [wsgi:error]... ModuleNotFoundError: No module named 'flask'
只需在我的烧瓶应用程序下运行 python app.wsgi
就会出现导入错误
和 python3 app.wsgi
工作正常。
python3 app.wsgi
2021-07-15 19:55:34.790679: W tensorflow/stream_executor/platform/default/dso_loader.cc:64] Could not load dynamic library 'libcudart.so.11.0'; dlerror: libcudart.so.11.0: cannot open shared object file: No such file or directory
2021-07-15 19:55:34.799360: I tensorflow/stream_executor/cuda/cudart_stub.cc:29] Ignore above cudart dlerror if you do not have a GPU set up on your machine.
[nltk_data] Downloading package stopwords to /home/ubuntu/nltk_data...
[nltk_data] Package stopwords is already up-to-date!
python app.wsgi
Traceback (most recent call last):
File "app.wsgi",line 4,in <module>
from app import app as application
File "/var/www/html/cvapp/app.py",line 6,in <module>
from flask import Flask,logging
ImportError: No module named flask
所以我认为 wsgi 模块是使用 python2.7 加载的
pip/pip3
我已经使用 pip/pip3 安装了所有软件包
pip --version
pip 21.1.3 from /home/ubuntu/.local/lib/python3.6/site-packages/pip (python 3.6)
pip3 --version
pip 21.1.3 from /home/ubuntu/.local/lib/python3.6/site-packages/pip (python 3.6)
注意,两者都指向同一个路径
哪个?
which python
/usr/bin/python
which python3
/usr/bin/python3
$PATH
echo $PATH
/home/ubuntu/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
我在 SO 上遵循了几个解决方案。
例如:This 并且能够加载 wsgi 模块:
Apache/2.4.29 (Ubuntu) mod_wsgi/4.5.22 Python/3.6 configured -- resuming normal operations
但有同样的问题。
请指教。我做错了什么?
一种方法是删除python2。
另一种是使用虚拟环境。
同时请告知是否有任何巧妙的解决方案?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。