前几天在部署 Vue + Django + Uwsgi + Nginx 的生产环境时,发现前端部署成功了,但是一直无法获取后端的数据,检查 Uwsgi 日志(位于 uwsgi安装目录/projects/log 下)发现日志中提示 “ImportError: No module named xxx” ,试过网上的各种方法还是无法解决,最终摸索出一套解决方法如下:
1、首先使用 pip install xxx 安装缺失的 module 并重新运行 Uwsgi,如果日志中依然提示原来的错误,则转步骤 2 ;
pip install xxx(日志中提示缺失的模组名)
2、检查日志中启动 Uwsgi 时使用的 python 版本:
这里可知博主启动启动 Uwsgi 时使用的 python 版本是 3.6 ;
3、使用 pip3.6 list 命令查看当前版本下 python 库中所有的 module,若确实缺失 Uwsgi 中提示的 module,则使用 pip3.6 install xxx 即可(这两处 pip 后面的版本替换成自己日志中的 python 版本);
4、重新运行 Uwsgi,若 pip3.6 install 成功,Uwsgi 可正常运行,若提示别的模组缺失,则继续使用 pip3.6 install xxx 安装。
****** 其他问题 ******
Q:我不想使用日志中提示的 python 版本运行 Uwsgi,如何修改版本?
A:博主试过网上的在 Uwsgi.ini 文件中指定 python 版本的方法,在我的项目中没有起效,最简便的方法就是将系统默认 python 软链接( /bin/python )修改为自己需要的版本后(此处略,请自行检索),在 Uwsgi 安装文件中使用 make 命令重新编译 Uwsgi,此时启动 Uwsgi 时使用的 python 版本即是系统 python 软链接所指向的 python 版本。
标签:No,ImportError,xxx,module,python,版本,日志,Uwsgi From: https://www.cnblogs.com/shinonomeasahi/p/18099878