【问题标题】:How to solve the ImportError: cannot import name simplejson in Django如何解决 ImportError: cannot import name simplejson in Django
【发布时间】:2015-03-07 11:43:56
【问题描述】:

我正在尝试在 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 中删除。我不知道为什么会这样。 请提供有关此问题的任何反馈以及解决此问题的可能补救措施。

【问题讨论】:

    标签: python json django django-1.7 simplejson


    【解决方案1】:

    您使用的是过时版本的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
    

    赤裸裸的异常条款 - 里面的禅宗程序员正在杀死我耳语except ImportErrorexcept ImportErrorexcept..

    【讨论】:

    • 不幸的是,我还没有任何 view.py 文件,因为当我尝试制作应用程序时,弹出此错误,不允许我拥有任何 view.py 文件。 init.py 文件暂时为空。
    • @SungpahLee nono,我的意思是更新django-realtime 包,重新安装到最新版本:pip install django-realtime --upgrade
    • rescomp-14-285794:realpro sungpah$ pip install django-realtime --upgrade 要求已经更新:/Library/Frameworks/Python.framework/Versions/2.7/ 中的 django-realtime lib/python2.7/site-packages 清理... rescomp-14-285794:realpro sungpah$
    • @SungpahLee 请查看更新后的答案(从 gi​​thub 安装)。
    • 在尝试制作应用程序时我仍然遇到同样的问题。当我安装 django-realtime 时,命令就像“pip install django-realtime”
    【解决方案2】:

    这是应用程序本身的错误;不幸的是 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
    

    【讨论】:

    • 酷。感谢您对这个问题提出非常好的建议,并希望能迅速解决一般问题
    【解决方案3】:

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

    Django 曾经在 django.utils 中附带 simplejson,但在 Django 1.5 中删除了这一点,因为 Python 中提供了 json 模块标准库。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-10-07
      • 1970-01-01
      • 1970-01-01
      • 2015-10-05
      • 1970-01-01
      • 1970-01-01
      • 2017-06-03
      相关资源
      最近更新 更多