(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,但它确实有效。
答案 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
>>>