python - 属性错误 : 'module' object has no attribute 'setdefaultencoding'

标签 python django

我尝试安装 xadmin(这是一个 django 的插件,用于将后台与 twitter 的 Bootstrap 一起使用)。但是当我运行我的项目时,我的 PyCharm 终端出现以下错误:

File "C:\Python34\lib\site-packages\xadmin\sites.py", line 10, in <module>
sys.setdefaultencoding("utf-8")
AttributeError: 'module' object has no attribute 'setdefaultencoding'

这是 xadmin 插件中 sites.py 源代码的摘录:

import sys
from functools import update_wrapper
from django.conf import settings
from django.core.exceptions import ImproperlyConfigured
from django.db.models.base import ModelBase
from django.views.decorators.cache import never_cache
from imp import reload

reload(sys)
sys.setdefaultencoding("utf-8")

该项目使用 python 3.4 解释器和 Django 1.7.1 运行。 xadmin的版本是0.5.0

我能做什么?

最佳答案

Python 3 没有sys.setdefaultencoding() 函数。它不能像在 Python 2 上那样通过 reload(sys) 恢复(在任何情况下你都不应该这样做)。

由于 Python 3 的默认设置已经是 UTF-8,因此没有必要保留这些语句。

在 Python 2 中,使用 sys.setdefaultencoding() 用于解决隐式编码问题(由连接字节字符串和 unicode 值以及其他此类混合类型情况引起),而不是修复问题本身。 Python 3 取消了隐式编码和解码,因此使用石膏设置不同的编码无论如何都没有区别。

但是,如果这是第 3 方库,那么您可能会遇到其他问题,因为它显然尚未与 Python 3 兼容。

关于python - 属性错误 : 'module' object has no attribute 'setdefaultencoding' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28127513/

相关文章:

Django URLS,如何将根映射到应用程序?

python - Django 中的自定义查询和模型

python - 如何使用 django/python 从网络服务获取返回值

python - 是否可以在渲染函数中返回 HttpResponse 对象?

python - 从另一个文件导入类及其功能

python - 有条件地合并列中单元格的内容

Django syncdb 未运行自定义 SQL

python - 从 Django 中的表名中查找模型实例

python - 如何使用 Python 列表使用 SWIG 在 C++ 中分配 std::vector?

python - 如何更改 Gtk2 中 MenuItem 的显示文本?