Django 1.10 / Apache 2.4.18,内部服务器错误"没有名为urls"

时间:2017-01-06 19:38:43

标签: python django apache

(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会导致&#34; 500内部服务器错误&#34;和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-data组同时拥有/ var / www / html和/ var / www / html / zarzif。)

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

1 个答案:

答案 0 :(得分:2)

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

  

“在旧版本中,这些功能位于django.core.urlresolvers”。

以下是使用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
>>>