python安装库时报错 ERROR:Command errored out with exit status1以及'Microsoft Visual C++ 14.0 is required'问题

前言

昨天晚上在windows上练习部署django,在使用

pip install -Ur requirements.txt

的时候出现了一些报错

具体问题如下

  1. UnicodeDecodeError: 'gbk' codec can't decode byte 0xa6 in position 1246: illegal multibyte sequence
    ----------------------------------------
    ERROR: Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.
  2. 'Microsoft Visual C++ 14.0 is required'...

猜测原因

第一个报错具体内容是应该是编码问题,读取文件的编码方式为GBK,而并非UTF-8 ,因此报错使得无法安装。

第二个应该是要安装 Microsoft Visual  C++ (但原本我电脑就已经安装了的,报错后又重新装了,依然没用)

实战

先解决第一个问题

解决思路: 下载源码的包,进行代码改动之后install

定位问题:源码中没有指定open时的编码方式,使得默认为gbk编码

报错的源码:

def read(fname): 
    return open(os.path.join(os.path.dirname(__file__), fname)).read()

下载原始包文件后,解压找到setup.py文件,修改文件里的这一行,即加上 encoding='utf-8' ,保存后打包为新的安装包。

修改后的代码:

def read(fname):
    return open(os.path.join(os.path.dirname(__file__), fname),encoding='utf-8').read()

最后输入

pip install [新的安装包路径]

安装新的包就可以了

 

解决第二个问题

在多次尝试安装不同版本的Microsoft Visual C++后依然不能解决现有问题,于是思考会不会是库本身的问题??在搜寻多方资料后才发现我所要安装的库‘rcssmin’所需要的方法是不同的,安装rcssmin(以及rjsmin)的方法为

pip install rcssmin --install-option="--without-c-extensions"
pip install rjsmin --install-option="--without-c-extensions"

收获

解决问题最重要的是要定位报错产生的原因,然后根据原因一步步找到解决的方法。

点赞

发表评论

电子邮件地址不会被公开。必填项已用 * 标注