Django,pyenv,uwsgi ModuleNotFoundError:没有名为“Django”的模块

2024-05-19 01:08:01 发布

您现在位置:Python中文网/ 问答频道 /正文

我在/etc/uwsgi/vassals/gsd.ini中有以下附庸配置:

[uwsgi]
plugins = python
env = DJANGO_SETTINGS_MODULE=%n.settings
virtualenv = /home/toogy/.pyenv/versions/%n
chdir = /home/webapps/%n
module = %n.wsgi:application
master = true
vacuum = true
pidfile = /tmp/uwsgi-%n.pid
socket = /tmp/uwsgi-%n.sock
daemonize = /var/log/uwsgi/%n.log
chmod-socket = 666
uid = toogy
gid = toogy

这是我得到的uwsgi日志

^{pr2}$

它找不到django,我不知道为什么,因为uwsgi似乎检测到了python环境(其中安装了django)。在

另外,它显示Python version: 3.6.0,而我的virtualenvpython版本是3.5.2。我不知道这是否应该发生。系统Python版本是3.6.0。在

我使用的是uwsgiuwsgi-plugins-pythonarchlinux官方软件包的最新版本。在


Tags: django版本logtruehomeetcpluginssocket
3条回答

请看gsd.ini

virtualenv = /home/toogy/.pyenv/versions/%n

您在这个virtualenv下安装了django了吗?在

在我的例子中,它使用的是全系统的uwsgi,我使用的是virtualenv,所以如果我执行

$ which uwsgi

我得到了/usr/local/python3.6/bin/uwsgi

正如Valentin Iovene所建议的那样,您需要从您的虚拟环境中使用uwsgi

我的目录结构如下:

^{pr2}$

应用程序目录是我的django应用程序所在的目录)

在我的例子中,uwsgi文件没有执行权限,所以我只执行了:

$ chmod +x ~/Env/bin/uwsgi

最后,在我的app目录下,我执行了uwsgi命令,如下所示:

../bin/uwsgi --http :8000 --module app.wsgi

现在我可以看到我的应用程序正在工作:)

我遵循这个指南:https://uwsgi-docs.readthedocs.io/en/latest/tutorials/Django_and_nginx.html

接下来的步骤是配置nginxhttps。。。在

我知道这是一个迟来的反应,但希望这有助于和大家分享对我有用的东西。在

问题是连接到uwsgi的全系统python版本需要与virtualenv的版本相同,我认为这是一件非常愚蠢的事情。在

相关问题 更多 >

    热门问题