我尝试安装 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/