Windows10运行Python2.7谷歌云项目报UnicodeEncodeError如何解决
故障原因
该异常是Python 2.7 Windows环境的典型编码兼容问题,触发原因如下:
- Python 2.7 默认全局编码为ASCII,当路径包含中文/非ASCII字符时,第三方库加载资源时的编码转换逻辑会触发报错,Mac/Unix环境默认使用UTF-8编码所以不会触发该问题
- 报错涉及的pycrypto 2.6.1版本本身对Windows非ASCII路径的适配性极差,是直接触发异常的第三方库问题
解决方案(均无需修改自有业务代码)
方案1(最快生效):修改Python 2.7全局默认编码
在你的Python 2.7安装路径下找到Lib\site-packages文件夹,新建名为sitecustomize.py的文件,写入以下内容:import sys reload(sys) sys.setdefaultencoding('utf-8')保存后重启运行项目的终端/IDE即可生效,该配置仅修改Python全局默认编码,不会对业务代码逻辑产生影响。
方案2(路径适配):排查所有相关路径的非ASCII字符
- 确认Google Cloud SDK安装路径是否包含中文、空格以外的特殊字符,如有可重装到纯英文路径,例如
E:\Google\cloud-sdk - 检查Windows当前用户目录、系统临时目录是否包含中文,可通过修改系统环境变量里的
TEMP、TMP值为纯英文路径(例如E:\temp),修改后重启电脑生效。
- 确认Google Cloud SDK安装路径是否包含中文、空格以外的特殊字符,如有可重装到纯英文路径,例如
方案3(永久修复):替换兼容的加密依赖库
执行以下命令替换pycrypto为兼容分支:pip uninstall -y pycrypto pip install pycryptodomepycryptodome完全兼容pycrypto的所有调用API,无需修改业务代码,同时修复了Windows环境下的路径编码bug。
内容的提问来源于stack exchange,提问作者user2547656
相关产品推荐
相关产品推荐

