我正在按照此指南为Django Web应用程序配置apache:https://docs.djangoproject.com/en/1.9/howto/deployment/wsgi/modwsgi/#basic-configuration我已经使用以下命令在ubuntu 15.10服务器上安装了Django、mod_wsgi-...

我正在按照此指南为Django Web应用程序配置apache:
https://docs.djangoproject.com/en/1.9/howto/deployment/wsgi/modwsgi/#basic-configuration
我已经使用以下命令在ubuntu 15.10服务器上安装了Django、mod_wsgi-express(新方法)和mod_wsgi for apache:
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无法加载我的应用程序/ Django?
解决方法:
基于:
http://www.webforefront.com/django/setupapachewebserverwsgi.html
www数据用户(运行apache文件夹的用户)必须对包含django安装的文件夹具有读取权限.我只是做了一个测试,将django安装和Web应用程序复制到:/ var / www / test,并更改了该文件夹的权限:
sudo chgrp -R www-data /var/www/test
sudo chmod -R g+rwx /var/www/test
现在应用程序已加载.
本文标题为:python-ImportError:没有名为django.core.wsgi的模块(ubuntu)


基础教程推荐
- windows下使用pycharm配置python的virtualenv环境 2023-09-04
- C++开发python windows版本的扩展模块示例 2023-09-03
- 如何修复AttributeError:在Google Cloud Interactive Shell中运行python时,“模块”对象没有属性“客户端” 2023-11-11
- python-“陈旧文件句柄”错误,当进程尝试读取文件时,该其他进程已被删除 2023-11-11
- Python+Opencv实现物体尺寸测量的方法详解 2022-10-20
- Python线程编程之Thread详解 2023-08-04
- Flask request 对象介绍 2023-08-08
- python通过内置模块监控磁盘、内存、CPU、负载 2023-09-03
- Python Type Hints 学习之从入门到实践 2023-08-08
- Python中最神秘missing()函数介绍 2023-08-09