ImportError:无法导入名称URL

时间:2019-01-23 01:05:22

标签: django python-2.7 uwsgi

我正在将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服务器:这也没有帮助。除此之外,我不确定自己还能尝试什么?

有什么想法可以寻求解决方案吗?

1 个答案:

答案 0 :(得分:0)

因此,事实证明./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分支未处于积极开发中,所以我认为这可能还可以。