首页 > 技术文章 > 转:anaconda django配置uwsgi出现的错误

dayongge 2020-08-12 22:55 原文

1 端口

日志:bind(): Address already in use [core/socket.c line 769]

原因:当前端口被使用。

解决:解决端口占用即可,懒得去找被谁占用了,很可能是被uwsgi之前的进程占用了。我是在排查问题,不是在求真,所以不浪费精力去排查到底被谁占用了,直接换个端口往下走。

2 插件

日志:no request plugin is loaded, you will not be able to manage requests.

原因:缺少插件。

解决:在uwsgi.ini中添加plugin = python3

3 django

日志:ModuleNotFoundError: No module named 'django'

原因:找不到django。

解决:在uwsgi.ini中添加home = /home/<username>/anaconda3/envs/django

4 encoding

日志:ModuleNotFoundError: No module named 'encodings'

原因:找不到encodings。

起因:我的uwsgi是用apt-get安装的,djjango是在虚拟环境下用pip安装的,两者python版本不一致。

解决:卸载uwsgi,到虚拟环境下用conda安装uwsgi,命令:conda install -c conda-forge uwsgi

备注:到虚拟环境下用pip安装uwsgi不可以,会由于gcc不一致报错。

重新创建项目,重新来过。

5 解决问题

前面所有的问题,都是python版本不一致导致的,只要解决了版本,所有问题就都不存在了。

针对版本的问题,网上搜到的解决方案都是针对virtualenv的,而我使用anaconda,思路是一样的,具体操作有点差别。

关键步骤:

虚拟环境下用conda安装uwsgi,命令:conda install -c conda-forge uwsgi。

推荐阅读