无法导入名称simplejson - 安装simplejson后

Tam*_*lik 10 python django

我有Django的1.7版和Python版本2.7.5 - 我使用PIP安装simplejson和apt-get安装python-simplejson命令来解决这个问题,但它仍然显示我这个例外.Django和Python之间是否存在任何兼容性问题,或者解决此异常的解决方案是什么:

Traceback (most recent call last):
  File "manage.py", line 10, in <module>
    execute_from_command_line(sys.argv)
  File "/root/test_env/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 385, in execute_from_command_line
    utility.execute()
  File "/root/test_env/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 354, in execute
    django.setup()
  File "/root/test_env/local/lib/python2.7/site-packages/django/__init__.py", line 21, in setup
    apps.populate(settings.INSTALLED_APPS)
  File "/root/test_env/local/lib/python2.7/site-packages/django/apps/registry.py", line 85, in populate
    app_config = AppConfig.create(entry)
  File "/root/test_env/local/lib/python2.7/site-packages/django/apps/config.py", line 123, in create
    import_module(entry)
  File "/usr/lib/python2.7/importlib/__init__.py", line 37, in import_module
    __import__(name)
  File "/root/test_env/local/lib/python2.7/site-packages/extdirect.django-0.3-py2.7.egg/extdirect/django/__init__.py", line 3, in <module>
    from providers import ExtRemotingProvider, ExtPollingProvider
  File "/root/test_env/local/lib/python2.7/site-packages/extdirect.django-0.3-py2.7.egg/extdirect/django/providers.py", line 4, in <module>
    from django.utils import simplejson
ImportError: cannot import name simplejson
Run Code Online (Sandbox Code Playgroud)

Tho*_*zco 21

您的代码与您使用的Django版本不兼容.

Django的使用出货simplejsondjango.utils,但是这是在Django 1.5去除:

django.utils.simplejson

由于Django 1.5不再支持Python 2.5,我们现在可以依赖Python标准库中的json模块了,所以我们删除了自己的simplejson副本.您现在应该导入json而不是django.utils.simplejson.

不幸的是,这种变化可能会产生不必要的副作用,因为simplejson版本之间不兼容 - 请参阅向后兼容的更改部分.如果你依赖于simplejson成为Python的json后添加的功能,你应该明确地导入simplejson.


你应该在更新代码extdirectproviders.pyimport json替代,或者用的Django版本,它被设计的工作.

  • @TameenMalik是的,`pip install django == 1.5.12`.但请注意,不再支持Django 1.5.您应该考虑更新代码以使用更新版本的Django. (3认同)
  • 用import simplejson代替从django.utils import simplejson很好吗? (2认同)