我有Django版本1.7和Python版本2.7.5 - 我使用pip install simplejson和apt-get install python-simplejson命令来解决这个问题,但它仍然显示我这个例外。 Django和Python之间是否存在任何兼容性问题,或者解决此异常的解决方案是什么:
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 :(得分:21)
您的代码与您正在使用的Django版本不兼容。
Django过去常常在simplejson
中附带django.utils
,但这是removed in Django 1.5:
django.utils.simplejson
由于Django 1.5不再支持Python 2.5,我们现在可以依赖了 json模块在Python的标准库中可用,所以我们已经 删除了我们自己的simplejson副本。你现在应该导入json django.utils.simplejson。
不幸的是,这种变化可能会产生不必要的副作用,因为 simplejson版本之间的不兼容性 - 请参阅 向后兼容的更改部分。如果您依赖添加的功能 在simplejson成为Python的json后,你应该导入 simplejson明确。
您应该将extdirect
的{{1}} providers.py
中的代码更新为import json
,或者使用专为其设计的Django版本。