Python報(bào)錯(cuò)ERROR:Command errored out with exit status 1:問題
2020.08.24更新:似乎產(chǎn)生這個(gè)的原因,就是因?yàn)镻ython 2和Python 3默認(rèn)的編碼格式不一樣。
Python 2是GBK,而Python 3是UTF-8。所以有些老舊的包在安裝時(shí),會(huì)產(chǎn)生編碼的問題。
- 因?yàn)镻ycharm最近老是彈出RELP COMMUNICATIONS,非常影響代碼運(yùn)行的效率。
- REPL(Read-Eval-Print Loop),翻譯過來就是“讀取-求值-輸出”循環(huán),是一個(gè)簡單的交互式的編程環(huán)境。
- 聽起來似乎挺有用,所以想直接在Pycharm中pip這個(gè)REPL。
結(jié)果報(bào)錯(cuò):
ERROR: Command errored out with exit status 1:

主要錯(cuò)誤顯示在最后幾行:
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,因此報(bào)錯(cuò)使得無法安裝。
更新成功解決的方法
由于不能使用 Pycharm 里的 Project Interpreter。
解決思路:下載源碼的包,進(jìn)行代碼改動(dòng)之后install。
1、找到原始package的文件,找到報(bào)錯(cuò)的那一行。
REPL的官方地址是:https://github.com/mbr/repl。查看報(bào)錯(cuò)的setup文件的源碼。

定位問題:源碼中沒有指定open時(shí)的編碼方式,使得默認(rèn)為gbk編碼。
報(bào)錯(cuò)的源碼:
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,用新的安裝包來進(jìn)行install。成功!

這個(gè)問題困擾了我一周,后來發(fā)現(xiàn)其實(shí)解決方法非常簡單!
解決問題最重要的是要定位報(bào)錯(cuò)產(chǎn)生的原因,然后根據(jù)原因一步步找到解決的方法。
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- Python報(bào)錯(cuò):KeyError: ‘xxx‘的原因及解決方案
- Python報(bào)錯(cuò)ModuleNotFoundError:No?module?named‘re’問題解決
- Python?報(bào)錯(cuò)ImportError:?No?module?named?***的問題解決
- Python報(bào)錯(cuò)ModuleNotFoundError的10種解決方案
- Python報(bào)錯(cuò)TypeError: ‘xxx’ object is not subscriptable
- 解決Python報(bào)錯(cuò):PermissionError: [Errno 13] Permission denied: ‘xxx‘
相關(guān)文章
Python史上最全種類數(shù)據(jù)庫操作方法分享
本文將詳細(xì)探討如何在Python中連接全種類數(shù)據(jù)庫以及實(shí)現(xiàn)相應(yīng)的CRUD(創(chuàng)建,讀取,更新,刪除)操作,文中的示例代碼講解詳細(xì),需要的可以參考一下2023-07-07
Python+tkinter使用40行代碼實(shí)現(xiàn)計(jì)算器功能
這篇文章主要為大家詳細(xì)介紹了Python+tkinter使用40行代碼實(shí)現(xiàn)計(jì)算器功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-01-01
Python實(shí)現(xiàn)中文數(shù)字與阿拉伯?dāng)?shù)字映射生成器(支持0-9999)的完整代碼
在中文文本處理和自然語言處理(NLP)應(yīng)用中,經(jīng)常需要將中文數(shù)字轉(zhuǎn)換為阿拉伯?dāng)?shù)字,本文將介紹如何使用Python根據(jù)用戶從控制臺(tái)輸入的數(shù)字范圍,生成相應(yīng)的中文數(shù)字到阿拉伯?dāng)?shù)字的映射字典,并將結(jié)果保存為JSON文件,需要的朋友可以參考下2025-07-07
Python預(yù)測(cè)2020高考分?jǐn)?shù)和錄取情況
這篇文章主要介紹了Python預(yù)測(cè)2020高考分?jǐn)?shù)和錄取情況可能是這樣,本文通過示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-07-07
el-table 多表格彈窗嵌套數(shù)據(jù)顯示異常錯(cuò)亂問題解決方案
使用vue+element開發(fā)報(bào)表功能時(shí),需要列表上某列的超鏈接按鈕彈窗展示,在彈窗的el-table列表某列中再次使用超鏈接按鈕點(diǎn)開彈窗,以此類推多表格彈窗嵌套,本文以彈窗兩次為例,需要的朋友可以參考下2023-11-11

