我尝试安装xadmin(这是django的插件,用于将backoffice与twitter的引导程序一起使用)。但是当我运行项目时,我的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()功能。不能reload(sys)像在Python 2上那样恢复它(在任何情况下都不应该这样做)。
sys.setdefaultencoding()
reload(sys)
由于Python 3的默认设置已经是UTF-8 ,因此保留这些语句毫无意义。
在Python 2中,使用sys.setdefaultencoding()来解决隐式编码问题(由连接字节字符串和unicode值以及其他此类混合类型的情况引起),而不是解决问题本身。Python 3取消了隐式编码和解码,因此使用石膏设置不同的编码将毫无区别。
但是,如果这是一个第三方库,则可能会遇到其他问题,因为它显然尚未与Python 3兼容。