gpt4 book ai didi

python - 导入错误:没有名为 django.core.wsgi 的模块(ubuntu)

转载 作者:行者123 更新时间:2023-11-28 16:26:24 25 4
gpt4 key购买 nike

我正在按照本指南为我的 Django Web 应用程序配置 Apache: https://docs.djangoproject.com/en/1.9/howto/deployment/wsgi/modwsgi/#basic-configuration

我已经安装了Django , mod_wsgi-express (方式)和mod_wsgi for apache在 ubuntu 15.10 服务器上使用:

pip install Django
pip install mod_wsgi
sudo aptitude install libapache2-mod-wsgi

接下来我将以下内容添加到:/etc/apache2/apache2.conf

WSGIScriptAlias / /home/user/mysite/mysite/wsgi.py
WSGIPythonPath /home/user/mysite:/home/user/.local/lib/python2.7/site-packages

<Directory /home/user/mysite/mysite>
<Files wsgi.py>
Require all granted
</Files>
</Directory>

但是当我启动 apache 时,出现以下错误:

[Sat Mar 26 12:10:06.876025 2016] [wsgi:error] [pid 10622:tid 139806697674496] [client 217.40.250.17:52124]     from django.core.wsgi import get_wsgi_application
[Sat Mar 26 12:10:06.876057 2016] [wsgi:error] [pid 10622:tid 139806697674496] [client 217.40.250.17:52124] ImportError: No module named django.core.wsgi

但该模块确实存在于我在上面的 WSGIPythonPath 中提供的路径中:

~/.local/lib/python2.7/site-packages/django/core $ cat wsgi.py
import django
from django.core.handlers.wsgi import WSGIHandler

和:

~/.local/lib/python2.7/site-packages $ ll
total 24
drwx------ 6 user user 4096 Mar 24 22:25 ./
drwx------ 3 user user 4096 Mar 20 20:56 ../
drwxrwxr-x 17 user user 4096 Mar 24 22:25 django/
drwxrwxr-x 2 user user 4096 Mar 24 22:25 Django-1.9.4.dist-info/
drwxrwxr-x 5 user user 4096 Mar 20 20:59 mod_wsgi/
drwxrwxr-x 2 user user 4096 Mar 20 20:59 mod_wsgi-4.4.22.egg-info/

我还尝试验证构建 mod_wsgi 模块所针对的 python 版本:

 /usr/lib/apache2/modules $ ldd mod_wsgi.so
linux-vdso.so.1 => (0x00007ffe50f31000)
libpython2.7.so.1.0 => /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0 (0x00007f376fbc2000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f376f9a4000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f376f5d9000)
libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007f376f3bf000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f376f1bb000)
libutil.so.1 => /lib/x86_64-linux-gnu/libutil.so.1 (0x00007f376efb7000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f376ecaf000)
/lib64/ld-linux-x86-64.so.2 (0x00005609838b3000)

所以看起来它是针对 Python 2.7 构建的,它与安装 Django 的版本相同。

那么为什么 apache 无法加载我的 application/django?

最佳答案

基于: http://www.webforefront.com/django/setupapachewebserverwsgi.html

www-data 用户(运行 apache 文件夹的用户)必须对包含 django 安装的文件夹具有读取权限。我刚刚做了一个测试,将 django 安装和我的 Web 应用程序复制到:/var/www/test 并更改了该文件夹的权限:

sudo chgrp -R www-data /var/www/test
sudo chmod -R g+rwx /var/www/test

应用程序现在加载。

关于python - 导入错误:没有名为 django.core.wsgi 的模块(ubuntu),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36234677/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com