从谷歌关闭库运行depswriter.py时出错

时间:2015-11-19 14:36:56

标签: google-closure-compiler google-closure-library xtk

我正在尝试在Oracle VirtualBox上运行的Linux上this link之后构建 XTK 以获得非缩小xtk.js。当我尝试在运行xtk-deps.js文件时生成deps.py时出现以下错误:

Generating dependency file for XTK...
Traceback (most recent call last):
File "/root/Downloads/X-master/lib/google-closure-library/closure/bin/build/depswriter.py", line 212, in <module>
main()
File "/root/Downloads/X-master/lib/google-closure-library/closure/bin/build/depswriter.py", line 196, in main
path_to_source[depspath] = source.Source(source.GetFileContents(srcpath))
File "/root/Downloads/X-master/lib/google-closure-library/closure/bin/build/source.py", line 126, in GetFileContents
return fileobj.read()
File "/usr/lib/python2.7/codecs.py", line 668, in read
return self.reader.read(size)
File "/usr/lib/python2.7/codecs.py", line 474, in read
newchars, decodedbytes = self.decode(data, self.errors)
File "/usr/lib/python2.7/encodings/utf_8_sig.py", line 104, in decode
return codecs.utf_8_decode(input, errors)
UnicodeDecodeError: 'utf8' codec can't decode byte 0x9a in position 4584: invalid start byte
Could not generate dependency file.  

有人可以解释为什么会出现这个错误。

2 个答案:

答案 0 :(得分:0)

你的代码中可能有一些非uft8字符(很可能是 X.js )。

以我的经验为例,在XTK的 X.js 中,我发现第210行中有一个非英语单词(可能是德语或法语名称)。我所做的是删除该字符并再次运行build.py.编码错误没有再出现。

答案 1 :(得分:0)

对我来说有用的是我之前使用google closure library提交XTK来构建here并且效果很好。
我不得不广泛搜索XTK的提交历史,以了解他们使用哪个版本的闭包库来构建它。

PS:早些时候我发布了类似的解决方案here。但该帖子被主持人删除了,所以再次在这里分享。