Python 将Apache2设置为将Django与mod#wsgi一起使用,没有名为'的模块;django';错误

Python 将Apache2设置为将Django与mod#wsgi一起使用,没有名为'的模块;django';错误,python,django,apache,apache2,Python,Django,Apache,Apache2,我正在尝试设置Apache2以使用mod_wsgi连接到Django 我有一个运行apache2的本地开发服务器,为网站的大部分文件提供服务。但是,我希望使用Django为联系人页面提供服务,因为我有一个Django应用程序,它是一个联系人表单 我还使用virtualenv作为python路径 我已经按照Django项目文档中的说明进行了操作 我的文件夹结构是: -mysite.com -myproject -contactApp -myprojec

我正在尝试设置Apache2以使用mod_wsgi连接到Django

我有一个运行apache2的本地开发服务器,为网站的大部分文件提供服务。但是,我希望使用Django为联系人页面提供服务,因为我有一个Django应用程序,它是一个联系人表单

我还使用virtualenv作为python路径

我已经按照Django项目文档中的说明进行了操作

我的文件夹结构是:

-mysite.com

    -myproject

        -contactApp

        -myproject

        -env
mysite.com.conf

<Directory /home/user/Documents/webdev/mysite.com/myproject/myproject>
        <Files wsgi.py>
                Require all granted
        </Files>
</Directory>

WSGIDaemonProcess mysite.com python-home=/home/user/Documents/webdev/mysite.com/myproject/env python-path=/home/user/Documents/webdev/mysite.com/myproject/env/lib/python3.5/site-packages
WSGIProcessGroup mysite.com
WSGIScriptAlias /contact /home/user/Documents/webdev/mysite.com/myproject/myproject/wsgi.py process-group=mysite.com

当我试图寻找解决方案但没有一个解决方案时,有人能帮我诊断问题吗?谢谢。

您不需要
python path
选项,因为
python home
设置为
sys的值。对于python虚拟环境,前缀应该足够了。但问题是,您的mod_wsgi是否是为创建虚拟环境的Python 3.5安装而编译的。此外,默认情况下,您的代码将作为特殊的Apache用户运行。该用户是否具有对项目和虚拟环境所在位置的
/home/user
和所有目录/文件的读取权限。相关链接和@GrahamDumpleton我尝试了在virtualenv中的python shell中导致错误的精确导入。这是否表明mod_wgsi是为我的virtualenv安装而编译的?这是一个不顾一切的措施,而且因为它只是一个本地开发环境,任何用户都可以访问所需的文件。但是,您是以自己的身份进行导入的,而Apache用户不太可能以自己的身份运行您的代码。如果目录/文件的权限过于严格,Apache用户可能无法读取目录。@GrahamDumpleton感谢您提供的链接。我明天会看一看(现在已经很晚了!)您不需要
python path
选项,因为
python home
设置为
sys的值。对于python虚拟环境,prefix
就足够了。但问题是,您的mod_wsgi是否是为创建虚拟环境的Python 3.5安装而编译的。此外,默认情况下,您的代码将作为特殊的Apache用户运行。该用户是否具有对项目和虚拟环境所在位置的
/home/user
和所有目录/文件的读取权限。相关链接和@GrahamDumpleton我尝试了在virtualenv中的python shell中导致错误的精确导入。这是否表明mod_wgsi是为我的virtualenv安装而编译的?这是一个不顾一切的措施,而且因为它只是一个本地开发环境,任何用户都可以访问所需的文件。但是,您是以自己的身份进行导入的,而Apache用户不太可能以自己的身份运行您的代码。如果目录/文件的权限过于严格,Apache用户可能无法读取目录。@GrahamDumpleton感谢您提供的链接。我明天会去看一看(这里已经很晚了!)
[Mon Jun 12 23:03:09.649249 2017] [wsgi:error] [pid 25755:tid 139706287081216['/home/user/Documents/webdev/mysite.com/myproject/env/lib/python35.zip', '/home/user/Documents/webdev/mysite.com/myproject/env/lib/python3.5', '/home/user/Documents/webdev/mysite.com/myproject/env/lib/python3.5/plat-x86_64-linux-gnu', '/home/user/Documents/webdev/mysite.com/myproject/env/lib/python3.5/lib-dynload', '/usr/lib/python3.5', '/usr/lib/python3.5/plat-x86_64-linux-gnu', '/home/user/Documents/webdev/mysite.com/myproject/env/lib/python3.5/site-packages']
[Mon Jun 12 23:03:09.649846 2017] [wsgi:error] [pid 25755:tid 139706287081216] [remote 127.0.0.1:39990] mod_wsgi (pid=25755): Target WSGI script '/home/user/Documents/webdev/mysite.com/myproject/myproject/wsgi.py' cannot be loaded as Python module.
[Mon Jun 12 23:03:09.649925 2017] [wsgi:error] [pid 25755:tid 139706287081216] [remote 127.0.0.1:39990] mod_wsgi (pid=25755): Exception occurred processing WSGI script '/home/user/Documents/webdev/mysite.com/myproject/myproject/wsgi.py'.
[Mon Jun 12 23:03:09.650380 2017] [wsgi:error] [pid 25755:tid 139706287081216] [remote 127.0.0.1:39990] Traceback (most recent call last):
[Mon Jun 12 23:03:09.650450 2017] [wsgi:error] [pid 25755:tid 139706287081216] [remote 127.0.0.1:39990]   File "/home/user/Documents/webdev/mysite.com/myproject/myproject/wsgi.py", line 14, in <module>
[Mon Jun 12 23:03:09.650462 2017] [wsgi:error] [pid 25755:tid 139706287081216] [remote 127.0.0.1:39990]     from django.core.wsgi import get_wsgi_application
[Mon Jun 12 23:03:09.650512 2017] [wsgi:error] [pid 25755:tid 139706287081216] [remote 127.0.0.1:39990] ImportError: No module named 'django'
import os
from django.core.wsgi import get_wsgi_application

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "myproject.settings")

application = get_wsgi_application()