今天cocos code ide导入项目进行编译的时候出现一个错误:
Traceback (most recent call last):
File "D:\Environment\cocos2d-x-3.2\cocos2d-x-3.2\tools\cocos2d-console\bin\cocos.py", line 502, in <module>
run_plugin(command, argv, plugins)
File "D:\Environment\cocos2d-x-3.2\cocos2d-x-3.2\tools\cocos2d-console\bin\cocos.py", line 469, in run_plugin
plugin.run(argv, dependencies_objects)
File "D:\Environment\cocos2d-x-3.2\cocos2d-x-3.2\tools\cocos2d-console\bin\..\plugins\project_compile\project_compile.py", line 1082, in run
self.build_win32()
File "D:\Environment\cocos2d-x-3.2\cocos2d-x-3.2\tools\cocos2d-console\bin\..\plugins\project_compile\project_compile.py", line 808, in build_win32
cocos.Logging.info("Find VS path : %s" % vsPath)
File "D:\Environment\cocos2d-x-3.2\cocos2d-x-3.2\tools\cocos2d-console\bin\cocos.py", line 47, in info
Logging._print(s, Logging.GREEN)
File "D:\Environment\cocos2d-x-3.2\cocos2d-x-3.2\tools\cocos2d-console\bin\cocos.py", line 39, in _print
print(s)
UnicodeEncodeError: 'ascii' codec can't encode characters in position 18-21: ordinal not in range(128)
这个错误说的其实是由于我的vs2012安装在一个中文的路径,导致python编译的时候查找vs时,由于vs的中文路径报错。之前也曾经由于项目的目录放在中文路径下而报错的问题,今天打开python解决了一下个问题。
首先找到cocos2d-x-3.2\tools\cocos2d-console\plugins\project_compile.py文件,也就是上面出错的文件,找到错误的808行,发现vsPath是主要错误的原因,因为默认是ascii格式,所以如果是中文路径会报错,因此我们要改为gbk格式,我们只需要在needUpgrade, vsPath = self._get_vs_path(required_vs_version)后面加上sys.setdefaultencoding('gbk'),就可以顺利编译通过。