2015-01-09 19 views
12

Sto provando a creare un'applicazione di chat in tempo reale su Django (1.7.1). Sembra che ho bisogno di installare Redis e ishout.js. Quindi li ho installati seguendo le istruzioni.Come risolvere ImportError: impossibile importare il nome simplejson in Django

Dopo aver fatto il progetto in Django, ho messo 'drealtime' sotto l'INSTALLED_APPS, e mettere:

'drealtime.middleware.iShoutCookieMiddleware' 

proprio sopra:

'django.contrib.sessions.middleware.SessionMiddleware' 

sotto il MIDDLEWARE_CLASSES come si diceva. E ho messo il comando come

python manage.py startapp example 

, ma ancora non ho questo messaggio di errore di importazione:

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 

Dopo aver cercato attraverso il sito ufficiale di Django, ho trovato simplejson non è più utilizzato e rimosso dal nuovo Django . Non so perché questo sta accadendo. Si prega di fornire un feedback su questo problema e un possibile rimedio per affrontare questo problema.

risposta

14

Si sta utilizzando una versione obsoleta di django-realtime.

aggiornamento alla versione più recente, hanno fixed the 1.7 compatibility:

pip install django-realtime --upgrade 

Se l'errore persiste, installare direttamente da github, branch master:

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

Cordiali saluti, la correzione:

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

Clausola di eccezione nuda - programmatore zen i abitacolo mi sta uccidendo sussurrando except ImportError, except ImportError, except..

+0

Purtroppo, non ho ancora alcun file view.py perché quando ho provato a fare l'applicazione, questo errore è saltato fuori, non permettendomi di avere alcun file view.py. Il file __init__.py è vuoto per ora. –

+0

@SungpahLee nono, voglio dire aggiornare il pacchetto 'django-realtime', reinstallarlo alla versione più recente:' pip installa django-realtime --upgrade'. – alecxe

+0

rescomp-14-285794: realpro sungpah $ pip installa django-realtime --upgrade Requisito già aggiornato: django-realtime in /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/ pacchetti del sito Pulizia in corso ... rescomp-14-285794: realpro sungpah $ –

2

Questo è un bug nell'applicazione stessa; purtroppo the error still persists in the master branch a git.

Ho inviato una richiesta di pull per correggere l'errore; nel frattempo si può fare quanto segue:

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

Cool. Grazie per l'ottimo consiglio su questo problema e speriamo che il problema generico venga risolto rapidamente –

5

Penso che le risposte di cui sopra sono soluzioni alternative.

Django usato per spedire con simplejson in django.utils, ma questo è stato rimosso nel Django 1.5 perché JSON modulo essendo disponibile nella libreria standard di Python.

Quindi dovresti ora import json anziché from django.utils import simplejson e apportare le modifiche necessarie dove vengono chiamati i metodi simplejson.

Problemi correlati