Skip to main content
 首页 » 编程设计

python之Django 1.8.2 和 dumpdata 的 simplejson 错误

2025年05月04日31itcoder

命令:

% ./manage.py dumpdata 

输出:

CommandError: Unable to serialize database: cannot import name simplejson 

zc.buildout 配置为在 app 目录下安装 simplejson。 simplejson 也存在于我的自定义 Python 目录/usr/local/python 中。

感谢您的帮助!

堆栈跟踪:

% ./manage.py dumpdata --traceback 
Traceback (most recent call last): 
  File "./manage.py", line 25, in <module> 
    sys.exit(djangorecipe.manage.main('project.settings.settings_dev')) 
  File "/opt/project/eggs/djangorecipe-1.11-py2.7.egg/djangorecipe/manage.py", line 9, in main 
    management.execute_from_command_line(sys.argv) 
  File "/opt/project/eggs/Django-1.8.2-py2.7.egg/django/core/management/__init__.py", line 338, in execute_from_command_line 
    utility.execute() 
  File "/opt/project/eggs/Django-1.8.2-py2.7.egg/django/core/management/__init__.py", line 330, in execute 
    self.fetch_command(subcommand).run_from_argv(self.argv) 
  File "/opt/project/eggs/Django-1.8.2-py2.7.egg/django/core/management/base.py", line 390, in run_from_argv 
    self.execute(*args, **cmd_options) 
  File "/opt/project/eggs/Django-1.8.2-py2.7.egg/django/core/management/base.py", line 441, in execute 
    output = self.handle(*args, **options) 
  File "/opt/project/eggs/Django-1.8.2-py2.7.egg/django/core/management/commands/dumpdata.py", line 162, in handle 
    stream=stream or self.stdout) 
  File "/opt/project/eggs/Django-1.8.2-py2.7.egg/django/core/serializers/__init__.py", line 128, in serialize 
    s = get_serializer(format)() 
  File "/opt/project/eggs/Django-1.8.2-py2.7.egg/django/core/serializers/__init__.py", line 51, in __call__ 
    raise self.exception 
ImportError: cannot import name simplejson 

请您参考如下方法:

django.utils.simplejson,不要与 simplejson 混淆模块是 deprecated在django 1.7中,我们现在依赖于python内置的json。 如果您正在运行遗留的第三方代码,或者一些难以更改的代码,请执行此操作

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

如果您正在编写新代码,请编写此代码以实现向后兼容性:

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

在您的情况下,是 manage.py 抛出错误还是代码中其他地方的错误?你能发布堆栈跟踪吗?