web-dev-qa-db-ja.com

ImportErrorを解決する方法:Djangoで名前simplejsonをインポートできません

Django(1.7.1)でリアルタイムチャットアプリを構築しようとしています。 Redisとishout.jsをインストールする必要があるようです。だから私は指示に従ってそれらをインストールしました。

Djangoでプロジェクトを作成した後、INSTALLED_APPSの下に「drealtime」を配置し、次のように配置します。

'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から削除されました。これが発生している理由がわかりません。この問題についてフィードバックをお寄せください。可能であれば、この問題に取り組むための救済策。

12
Sungpah Lee

Django-realtimeの古いバージョンを使用しています。

最新バージョンにアップグレードしてください 1.7互換性を修正

pip install Django-realtime --upgrade

エラーが解決しない場合は、github、masterブランチから直接インストールします。

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

参考までに、修正:

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

ベアエクセプション句-内部の禅プログラマーが私にささやいて私を殺しているexcept ImportErrorexcept ImportErrorexcept ..

14
alecxe

上記の回答は回避策だと思います。

DjangoはDjango.utilssimplejsonを使用して出荷されていましたが、これは Django 1.5 で削除されました。Pythonの標準ライブラリでjsonモジュールが使用できるためです。

だからあなたは今import json の代わりに from Django.utils import simplejson、およびsimplejsonメソッドが呼び出される場所で必要な変更を行います。

5
Frank Fang

これはアプリケーション自体のバグです。残念ながら エラーはまだmasterブランチに残っています at git。

エラーを修正するためにプルリクエストを送信しました。その間、次のことができます。

pip uninstall Django-realtime
pip install git+https://github.com/burhan/Django-realtime.git@import-fix
2
Burhan Khalid