python3.5 pip install markdown 时发生 "ValueError:the shebang (b'#!c:...)is not decode from utf8"


         如上图。在网上找了好久,浏览了好多帖子,均得不到想要的结果。。都说文字编码引发的错误会把人逼疯,确实如此啊。


       正当我快要放弃的时候,突然想我何不利用错误信息,自己尝试一下嘛。没想到这一下很快就解决了。下面是解决方法:

       按照错误提示,我们打开这个文件:C:\Users\青霖\AppData\Local\Programs\Python\Python35\Lib\distutils\command\build_scripts.py,找到对应出错的语句块:

                    try:
                        shebang.decode(encoding)
                    except UnicodeDecodeError:
                        raise ValueError(
                            "The shebang ({!r}) is not decodable "
                            "from the script encoding ({})"
                            .format(shebang, encoding))



可以看到try语句块试图对一个字节流进行decode,失败时抛出错误,也就是我们看到的出错信息:shebang不能用utf8正确解码。
我尝试用gbk,甚至ascii进行decode。还是不成功,说明问题可能不在这里。我们接着往上看:
                    if not sysconfig.python_build:
                        executable = self.executable
                    else:
                        executable = os.path.join(
                            sysconfig.get_config_var("BINDIR"),
                           "python%s%s" % (sysconfig.get_config_var("VERSION"),
                                           sysconfig.get_config_var("EXE")))
                    executable = os.fsencode(executable)
                    shebang = b"#!" + executable + post_interp + b"\n"
注意到这段代码
executable = os.fsencode(executable)

os.fsencode()函数对地址executable进行encode。我们不知道这是utf-8还是什么别的格式,反正用decode(utf-8)竟然会出错!那我们不如干脆把它换成executable=executable.encode("utf-8")来试试:

哈哈,成功了!不试不知道,原来这么容易。。自己动手,丰衣足食!

希望能帮到你

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值