2015-01-20 7 views
10

Ich habe Django Version 1.7 und Python Version 2.7.5 - Ich habe pip install simplejson und apt-get installieren python-simplejson Befehle, um dieses Problem zu lösen, aber es zeigt mir immer noch diese Ausnahme. Gibt es ein Kompatibilitätsproblem zwischen Django und Python oder was ist die Lösung aus dieser Ausnahme zu erhalten:Name kann nicht importiert werden simplejson - Nach der Installation von 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

Warum importieren Sie 'simplejson' aus' django.utils'? – dmg

+1

@dmg - 'simplejson' benutzt, um (vor einer Weile) dort zu sein;) –

+0

@ThomasOrozco Es ist schon eine ganze Weile, ich denke: D – dmg

Antwort

21

Ihr Code ist nicht kompatibel mit der Version von Django Sie verwenden.

Django verwendet mit simplejson in django.utils zu versenden, aber das war removed in Django 1.5:

django.utils.simplejson

Da Django 1.5 Tropfen für Python 2.5 unterstützt, können wir vertrauen auf die json Modul in Pythons Standard-Bibliothek zur Verfügung, so haben wir unsere eigene Kopie von Simplejson entfernt. Sie sollten nun json statt von django.utils.simplejson importieren.

Leider kann diese Änderung unerwünschte Nebenwirkungen haben, weil Inkompatibilitäten zwischen Versionen von simplejson - siehe rückwärtskompatible Änderungen Abschnitt. Wenn Sie sich auf Features verlassen, die zu Simplejson hinzugefügt wurden, nachdem es Pythons Json wurde, sollten Sie Simplejson explizit importieren.


Sie sollten den Code in extdirect ‚s providers.py zu import json stattdessen aktualisieren, oder verwenden Sie die Version von Django es entworfen wurde, mit zu arbeiten.

+0

Kann ich Django Version 1.5 installieren, um dieses Problem zu lösen? –

+3

@TameenMalik Ja, 'pip install django == 1.5.12'. Beachten Sie jedoch, dass Django 1.5 nicht mehr unterstützt wird. Sie sollten wirklich in Betracht ziehen, Ihren Code so zu aktualisieren, dass er mit einer neueren Version von Django funktioniert. –

+0

ok lass mich das versuchen :) danke - –

Verwandte Themen