Как решить ImportError: невозможно импортировать имя simplejson в 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. Я не знаю, почему это происходит.
Просьба дать любую обратную связь по этой проблеме и возможное решение этой проблемы.
Ответы
Ответ 1
Вы используете устаревшую версию django-realtime
.
Обновите его до последней версии, они исправили совместимость 1.7:
pip install django-realtime --upgrade
Если ошибка сохраняется, установите непосредственно из github, master branch:
$ pip install git+https://github.com/anishmenon/django-realtime.git --upgrade
FYI, исправление:
try:
from django.utils import simplejson as json
except:
import simplejson as json
Предложение Bare исключения - программист zen внутри убивает меня, шепчу except ImportError
, except ImportError
, кроме..
Ответ 2
Я думаю, что приведенные выше ответы являются обходными способами.
Django используется для отправки simplejson в django.utils, но это было удалено в Django 1.5, поскольку модуль json доступен в стандартной библиотеке Pythons.
Итак, теперь вы должны import json
вместо from django.utils import simplejson
и вносить необходимые изменения, когда вызываются методы simplejson.
Ответ 3
Это ошибка в самом приложении; к сожалению ошибка все еще сохраняется в главной ветке в git.
Я отправил запрос на pull для исправления ошибки; тем временем вы можете сделать следующее:
pip uninstall django-realtime
pip install git+https://github.com/burhan/[email protected]