2015-01-09 25 views
12

我試圖在Django(1.7.1)中構建實時聊天應用程序。看來我需要安裝Redis和ishout.js。所以我按照說明安裝了它們。如何解決ImportError:無法在Django中導入名稱simplejson

在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刪除。我不知道爲什麼會發生這種情況。 請對此問題提供任何反饋意見並採取可能的補救措施來解決此問題。

回答

14

您正在使用過期版本的django-realtime

,將其升級到最新版本,他們fixed the 1.7 compatibility

pip install django-realtime --upgrade 

如果錯誤仍然存​​在,直接從GitHub安裝,主分支:

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

僅供參考,修復:

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

Bare exception clause - zen programmer i nside正在扼殺我耳語except ImportErrorexcept ImportError,except..

+0

不幸的是,我沒有任何view.py文件,因爲當我試圖製作應用程序時,這個錯誤彈出,不允許我有任何view.py文件。 __init__.py文件現在是空的。 –

+0

@SungpahLee nono,我的意思是更新'django-realtime'包,重新安裝到最新版本:'pip install django-realtime --upgrade'。 – alecxe

+0

rescomp-14-285794:realpro sungpah $ pip install django-realtime --upgrade 要求已更新:django-realtime在/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/網站包 清理... rescomp-14-285794:realpro sungpah $ –

2

這是應用程序本身的錯誤;不幸的是the error still persists in the master branch在git上。

我提交了一個pull請求來修復錯誤;在此期間,您可以執行以下操作:

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

很酷。感謝您就這個問題提出了非常好的建議,並希望通用問題能夠很快得到解決 –

5

我認爲上述答案是解決方法。

的Django使用simplejsondjango.utils出貨,但是這是在Django 1.5因爲JSON模塊移除是在Python的標準庫。

因此,您現在應該import json而不是from django.utils import simplejson,並在調用simplejson方法時進行必要的更改。

相關問題