ImportError: cannot import name url

ImportError: cannot import name url

我正在将 Django 应用程序从 v1.3 升级到 1.11.18。 我们正在 运行ning Python v2.7.12 和 运行ning 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 文件夹中没有任何 "left over" 代码:它是干净的。我们还重新启动了 linux 服务器只是为了好玩:这也没有帮助。除此之外,我不确定还能尝试什么?

有什么想法可以解决这个问题吗?

所以事实证明 ./django/conf/urls/__init__.py 文件实际上缺少所需的 def url() 函数。我不确定以前怎么没有人注意到这一点,因为核心代码清楚地在各处调用了 url 函数。

为了解决这个问题,我下载了 Django v1.10.x 并将 v1.10.x 代码中的 def url(...) 函数复制到 django/conf/urls/__init__.py 文件中,一切正常不出所料。

我确实意识到我修改了一个核心文件,但我不确定如何解决这个问题。这个 Django 的 1.x 分支没有在积极开发中,所以我认为这可能没问题。