2015-01-20 19 views
10

Ho Django versione 1.7 e Python versione 2.7.5 - Ho usato i comandi di installazione di simplejson e apt-get install python-simplejson per risolvere questo problema, ma continua a mostrarmi questa eccezione. Esiste un problema di compatibilità tra Django e Python o qual è la soluzione per uscire da questa eccezione:Impossibile importare il nome simplejson - Dopo aver installato simplejson

Traceback (most recent call last): 
    File "manage.py", line 10, in <module> 
    execute_from_command_line(sys.argv) 
    File "/root/test_env/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 385, in execute_from_command_line 
    utility.execute() 
    File "/root/test_env/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 354, in execute 
    django.setup() 
    File "/root/test_env/local/lib/python2.7/site-packages/django/__init__.py", line 21, in setup 
    apps.populate(settings.INSTALLED_APPS) 
    File "/root/test_env/local/lib/python2.7/site-packages/django/apps/registry.py", line 85, in populate 
    app_config = AppConfig.create(entry) 
    File "/root/test_env/local/lib/python2.7/site-packages/django/apps/config.py", line 123, in create 
    import_module(entry) 
    File "/usr/lib/python2.7/importlib/__init__.py", line 37, in import_module 
    __import__(name) 
    File "/root/test_env/local/lib/python2.7/site-packages/extdirect.django-0.3-py2.7.egg/extdirect/django/__init__.py", line 3, in <module> 
    from providers import ExtRemotingProvider, ExtPollingProvider 
    File "/root/test_env/local/lib/python2.7/site-packages/extdirect.django-0.3-py2.7.egg/extdirect/django/providers.py", line 4, in <module> 
    from django.utils import simplejson 
ImportError: cannot import name simplejson 
+0

perché stai importando 'simplejson' da' django.utils'? – dmg

+1

@dmg - 'simplejson' usato per (qualche tempo fa) essere lì;) –

+0

@ThomasOrozco È passato un bel po 'di tempo a pensare: D – dmg

risposta

21

Il codice non è compatibile con la versione di Django che si sta utilizzando.

Django usato per spedire con simplejson in django.utils, ma questo era removed in Django 1.5:

django.utils.simplejson

Dal Django 1.5 gocce supporto per Python 2.5, possiamo ora contare sulla JSON il modulo è disponibile nella libreria standard di Python, quindi abbiamo rimosso la nostra copia di simplejson. Ora dovresti importare json invece di django.utils.simplejson.

Purtroppo, questo cambiamento potrebbe avere effetti collaterali indesiderati, perché di incompatibilità tra le versioni di simplejson - vedere il retro-compatibile sezione modifiche. Se ti affidi alle funzionalità aggiunte a a simplejson dopo che è diventato Python, devi importare esplicitamente simplejson.


Si consiglia di aggiornare il codice in extdirect s' providers.py a import json, invece, o utilizzare la versione di Django è stato progettato per funzionare con.

+0

posso installare Django versione 1.5 per risolvere questo problema? –

+3

@TameenMalik Sì, 'pip installa django == 1.5.12'. Tuttavia, si noti che Django 1.5 non è più supportato. Dovresti davvero considerare di aggiornare il tuo codice per lavorare con una versione più recente di Django. –

+0

ok fammi provare questo :) grazie - –

Problemi correlati