Django 1.10 / Apache 2.4.18,内部服务器错误"No module named urls"



(Ubuntu 16.04,Django 1.10,Apache 2.4.18,mod_wsgi,没有virtualenv。)我完成了我的应用程序(我没有按照教程;),使用轻量级Django开发服务器测试它——没有错误。在部署之前,我想在笔记本电脑上使用apache服务器"在家"测试它。我把这个名为"zarzif"的项目移到了/var/www/html,这样manage.py就在/var/www/html/zarzif中(而"import zarzif"正在这个位置工作)。文件wsgi.py位于/var/www/html/zarzif/zarzif中。我的apache2.conf包含以下内容:

WSGIScriptAlias / /var/www/html/zarzif/zarzif/wsgi.py
WSGIPythonPath /var/www/html/zarzif/
<Directory /var/www/html/zarzif/zarzif>
<Files wsgi.py>
Require all granted
</Files>
</Directory>

然而,启动服务器并转到127.0.0.1会导致"500内部服务器错误",Error.log会显示(在几个副本中)

from django.urls import reverse, referer: http://127.0.0.1/
ImportError: No module named urls, referer: http://127.0.0.1/

我做错了什么?我查了几个相关的问题,但没有发现这个问题。提前感谢!

(不确定这是否重要,但组www数据同时拥有/var/www/html和/var/www/html/zarzif。)

编辑:@David542下面的解决方案是从django.core.urlresolvers导入reverse。我不知道为什么,因为我使用的是Django 1.10,但它确实有效。

从1.10版本开始,这似乎已经被弃用:https://docs.djangoproject.com/en/1.10/ref/urlresolvers/#module-django.urls.

"在旧版本中,这些函数位于django.core.urlresolver中".

以下是我使用1.10+之前的版本导入reverse的操作

>>> import django
>>> django.VERSION
(1, 4, 13, 'final', 0)
>>> from django.urls import reverse
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named urls
>>> from django.core.urlresolvers import reverse
>>> 

相关内容

最新更新