最近在学习随机矩阵理论RMT(Random Matrix Theory),因为自己本身数学不太好,理论学习了一通,讲真,还是没懂说什么。。所以想着先上代码吧,然后在下载随机矩阵理论的Python包——scikit-rmt 时,出现了报错:“ERROR:Command errored out with exit status 1”。
错误主要看最后三行。
File "D:\USER_C~1\pip-install-ljn4k2b2\scikit-rmt_74fea7849fe144b1b84c92ecd80beaa7\setup.py", line 11, in <module>
LONG_DESCRIPTION = f.read()
UnicodeDecodeError: 'gbk' codec can't decode byte 0x93 in position 8536:illegal multibyte sequence
定位问题:
UnicodeDecodeError,表明是编码的问题。
具体在setup.py 文件中的第11行,读取文件的编码方式为GBK,而并非UTF-8
解决办法:
- 从官方地址(
https://github.com/AlejandroSantorum/scikit-rmt )找到原始package的文件,查看报错的setup.py 文件源码。 源码中第11行没有指定open时的编码方式,默认为gbk编码。 - 下载原始包文件,解压找到
setup.py 文件,修改文件的第11行,即加上encoding="utf-8" ,保存后压缩为新的安装包。 - 把新的安装包放在项目目录下,在终端输入命令:pip install scikit-rmt-main.tar.gz。这里有一点需要注意:你从官方地址下载的原始package文件是zip,命令需要的是tar.gz文件,需要用7-Zip进行压缩。
成功了。遇到问题最重要的是先定位报错产生的原因,然后根据原因一步步找到解决的方法。
|