Python报错ERROR:Command errored out with exit status 1:问题

 更新时间:2025年07月30日 10:16:11   作者:是杰夫呀  
文章解决Python3安装repl包时因编码问题导致的UnicodeDecodeError,通过修改setup.py文件编码为UTF-8并重新打包安装,成功规避GBK与UTF-8兼容性冲突,强调定位错误原因的重要性

2020.08.24更新:似乎产生这个的原因,就是因为Python 2和Python 3默认的编码格式不一样。

Python 2是GBK,而Python 3是UTF-8。所以有些老旧的包在安装时,会产生编码的问题。

  •  因为Pycharm最近老是弹出RELP COMMUNICATIONS,非常影响代码运行的效率。
  • REPL(Read-Eval-Print Loop),翻译过来就是“读取-求值-输出”循环,是一个简单的交互式的编程环境。
  • 听起来似乎挺有用,所以想直接在Pycharm中pip这个REPL。

结果报错:

ERROR: Command errored out with exit status 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.

定位问题

UnicodeDecodeError,表明是编码的问题。

具体就是在setup.py文件中的第10行和第17行,读取文件的编码方式为GBK,而并非UTF-8,因此报错使得无法安装。

更新成功解决的方法

由于不能使用 Pycharm 里的 Project Interpreter。

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

1、找到原始package的文件,找到报错的那一行。

REPL的官方地址是:https://github.com/mbr/repl。查看报错的setup文件的源码。

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

报错的源码:

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

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

修改后的代码:

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

3、输入 pip install repl-1.0.tar.gz,用新的安装包来进行install。成功!

这个问题困扰了我一周,后来发现其实解决方法非常简单!

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

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Python密码学仿射密码及攻击单字母密码教程

    Python密码学仿射密码及攻击单字母密码教程

    这篇文章主要为大家介绍了Python密码学仿射及攻击单字母密码教程,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-05-05
  • 使用Python Tkinter实现剪刀石头布小游戏功能

    使用Python Tkinter实现剪刀石头布小游戏功能

    这篇文章主要介绍了使用Python Tkinter实现剪刀石头布小游戏功能,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-10-10
  • 基于python实现百度翻译功能

    基于python实现百度翻译功能

    这篇文章主要介绍了基于python实现百度翻译功能,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-05-05
  • Python机器学习算法库scikit-learn学习之决策树实现方法详解

    Python机器学习算法库scikit-learn学习之决策树实现方法详解

    这篇文章主要介绍了Python机器学习算法库scikit-learn学习之决策树实现方法,结合实例形式分析了决策树算法的原理及使用sklearn库实现决策树的相关操作技巧,需要的朋友可以参考下
    2019-07-07
  • Python 矩阵转置的几种方法小结

    Python 矩阵转置的几种方法小结

    今天小编就为大家分享一篇Python 矩阵转置的几种方法小结,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-12-12
  • Python+Appium自动化操作微信的教程分享

    Python+Appium自动化操作微信的教程分享

    Appium 是一个开源的自动化测试工具,支持 Android、iOS 平台上的原生应用,支持 Java、Python、PHP 等多种语言。本文主要介绍了Python+Appium自动化操作微信的教程,希望对大家有所帮助
    2023-01-01
  • Python函数和模块的使用总结

    Python函数和模块的使用总结

    在本文中小编给大家整理了关于Python函数和模块的使用的相关知识点以及实例代码内容,需要的朋友们跟着学习下。
    2019-05-05
  • 在Python中实现替换字符串中的子串的示例

    在Python中实现替换字符串中的子串的示例

    今天小编就为大家分享一篇在Python中实现替换字符串中的子串的示例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-10-10
  • 如何使用pycharm连接Databricks的步骤详解

    如何使用pycharm连接Databricks的步骤详解

    这篇文章主要介绍了如何使用pycharm连接Databricks,本文分步骤给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-09-09
  • Python创建Excel表和读取Excel表的基本操作

    Python创建Excel表和读取Excel表的基本操作

    这篇文章主要介绍了Python创建Excel表和读取Excel表的基本操作,文中通过代码示例和图文结合的方式讲解的非常详细,对大家的学习或工作有一定的帮助,需要的朋友可以参考下
    2024-07-07

最新评论