2015-01-09 6 views
12

Ich versuche, eine Echtzeit-Chat-App in Django (1.7.1) zu bauen. Es scheint, dass ich Redis und ishout.js installieren musste. Also habe ich sie installiert, indem ich die Anweisungen befolgt habe.So lösen Sie den ImportError: kann Name Simplejson in Django nicht importieren

Nachdem das Projekt in Django zu machen, habe ich 'drealtime' unter dem INSTALLED_APPS und setze:

'drealtime.middleware.iShoutCookieMiddleware' 

rechts oben:

'django.contrib.sessions.middleware.SessionMiddleware' 

unter den MIDDLEWARE_CLASSES wie es sagt. Und ich habe den Befehl wie

python manage.py startapp example 

aber ich habe immer noch diese Importfehlermeldung:

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 

Nachdem ich durch die Django offiziellen Website gesucht, fand ich simplejson wird nicht mehr verwendet und entfernt von neuen Django . Ich weiß nicht, warum das passiert. Bitte geben Sie Feedback zu diesem Problem und mögliche Abhilfe, um dieses Problem anzugehen.

Antwort

14

Sie verwenden eine veraltete Version von django-realtime.

es ein Upgrade auf die neueste Version, sie fixed the 1.7 compatibility:

pip install django-realtime --upgrade 

Wenn der Fehler weiterhin besteht, installieren direkt von Github, master-Zweig:

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

FYI, die fix:

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

Bare Ausnahmeklausel - Zen-Programmierer i nside bringt mich zum Flüstern except ImportError, except..

+0

Leider habe ich noch keine view.py-Datei, denn als ich versuchte, die Anwendung zu erstellen, tauchte dieser Fehler auf und erlaubte mir nicht, eine view.py-Datei zu haben. Die Datei __init__.py ist vorerst leer. –

+0

@SungpahLee nono, ich meine update das 'django-realtime' Paket, installiere es neu auf die neueste Version:' pip install django-realtime --upgrade'. – alecxe

+0

rescomp-14-285794: realpro sungpah $ pip installieren django-realtime --upgrade Anforderung bereits aktuell: django-realtime in /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/ site-packages Aufräumen ... rescomp-14-285794: realpro sungpah $ –

2

Dies ist ein Fehler in der Anwendung selbst; leider the error still persists in the master branch bei git.

Ich habe eine Pull-Anfrage eingereicht, um den Fehler zu beheben; In der Zwischenzeit können Sie Folgendes tun:

pip uninstall django-realtime 
pip install git+https://github.com/burhan/[email protected] 
+0

Cool. Danke für einen wirklich guten Rat zu diesem Thema und hoffe, dass das generische Problem schnell gelöst wird –

5

Ich denke, die obigen Antworten sind Umgehungslösungen.

Django verwendet mit simplejson in django.utils versenden, aber dies wurde in Django 1.5 weil json Modul entfernt in Pythons Standardbibliothek zur Verfügung steht.

Sie sollten jetzt import json anstelle von from django.utils import simplejson, und notwendige Änderungen vornehmen, wo Simplejson Methoden aufgerufen werden.