繁体   English   中英

Django 1.10 / Apache 2.4.18,内部服务器错误“没有名为urls的模块”

[英]Django 1.10 / Apache 2.4.18, Internal Server Error “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 Internal Server Error”,并且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下面的解决方案是从django.core.urlresolvers导入reverse 我不知道为什么,因为我使用的是Django 1.10,但它确实有效。

自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
>>> 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM