我正在将Django应用程序从v1.3升级到1.11.18。我们正在运行Python v2.7.12,并正在运行Nginx服务器来提供页面。
我一直在进行代码更改,以解决升级后所有不推荐使用的方法。到现在为止还挺好。再次运行更新后,启动服务器后,我遇到了以下错误通知:
File "/home/bat/application.com/wsgi.py", line 12, in <module>
application = get_wsgi_application()
File "./django/core/wsgi.py", line 14, in get_wsgi_application
return WSGIHandler()
File "./django/core/handlers/wsgi.py", line 151, in __init__
self.load_middleware()
File "./django/core/handlers/base.py", line 56, in load_middleware
mw_class = import_string(middleware_path)
File "./django/utils/module_loading.py", line 20, in import_string
module = import_module(module_path)
File "/usr/lib/python2.7/importlib/__init__.py", line 37, in import_module
__import__(name)
File "./django/middleware/locale.py", line 4, in <module>
from django.conf.urls.i18n import is_language_prefix_patterns_used
File "./django/conf/urls/i18n.py", line 2, in <module>
from django.conf.urls import url
ImportError: cannot import name url
我不确定为什么会出现此错误,因为所引用的代码是所有核心代码。除了开始行以外,它似乎根本没有引用任何项目代码。
我仔细检查了一下,以确保我们在核心django文件夹中没有任何“遗留”代码:这很干净。我们还重新启动了Linux服务器,只是为了踢:这也无济于事。除此之外,我不确定自己还能尝试什么?
有什么想法可以寻找解决方案吗?
因此,事实证明该./django/conf/urls/__init__.py
文件实际上正在缺少所需的def url()
功能。我不确定之前没有人注意到它,因为核心代码显然url
在各处都调用了该函数。
为了解决该问题,我下载了Django v1.10.x并将该def url(...)
功能从v1.10.x代码复制到django/conf/urls/__init__.py
文件中,并且一切正常。
我确实意识到我已经修改了一个核心文件,但是我不确定如何解决该问题。Django的1.x分支未处于积极开发中,因此我认为这可能还可以。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句