How to solve the ImportError: cannot import name simplejson in Django

How to solve the ImportError: cannot import name simplejson in Django

我正在尝试在 Django(1.7.1) 中构建一个实时聊天应用程序。看来我需要安装 Redis 和 ishout.js。所以我按照说明安装了它们。

在Django中制作项目后,我把'drealtime'放在INSTALLED_APPS下面,然后放:

'drealtime.middleware.iShoutCookieMiddleware' 

正上方:

'django.contrib.sessions.middleware.SessionMiddleware' 

MIDDLEWARE_CLASSES如其所说。我把命令写成

python manage.py startapp example

但我仍然收到此导入错误消息:

Traceback (most recent call last):
  File "manage.py", line 10, in <module>
    execute_from_command_line(sys.argv)
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/core/management/__init__.py", line 385, in execute_from_command_line
    utility.execute()
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/core/management/__init__.py", line 354, in execute
    django.setup()
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/__init__.py", line 21, in setup
    apps.populate(settings.INSTALLED_APPS)
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/apps/registry.py", line 85, in populate
    app_config = AppConfig.create(entry)
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/apps/config.py", line 87, in create
    module = import_module(entry)
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/importlib/__init__.py", line 37, in import_module
    __import__(name)
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/drealtime/__init__.py", line 4, in <module>
    from django.utils import simplejson as json

在 Django 官方网站上搜索后,我发现 simplejson 不再使用并从新的 Django 中删除。我不知道为什么会这样。 请提供有关此问题的任何反馈以及解决此问题的可能补救措施。

您使用的是 django-realtime 的过时版本。

升级到最新版本,他们fixed the 1.7 compatibility:

pip install django-realtime --upgrade

如果错误依旧,直接从github安装,master分支:

$ pip install git+https://github.com/anishmenon/django-realtime.git --upgrade

仅供参考,修复:

try:
    from django.utils import simplejson as json
except:
    import simplejson as json

裸例外条款 - zen programmer inside is killing me whispering except ImportError, except ImportError, except..

这是应用程序本身的错误;不幸的是 the error still persists in the master branch 在 git.

我提交了一个拉取请求来修复错误;同时您可以执行以下操作:

pip uninstall django-realtime
pip install git+https://github.com/burhan/django-realtime.git@import-fix

我认为以上答案是解决方法。

Django 曾经在 django.utils 中附带 simplejson,但在 Django 1.5 因为 json 模块在 Python 的标准库中可用。

所以您现在应该 import json 而不是 from django.utils import simplejson,并在调用简单json 方法的地方进行必要的更改。