Python 2.x 執行pip install spyder 或者pip install *出現編碼異常

錯誤提示出現某個字節不能使用ascii或者utf8解析

原因:安裝的文件包含一些字符不能使用ascii或者utf8編碼解讀,一般是這些文件可能包含中文,比如用gbk編碼方式保存這些中文然而,python 2.x 默認的字符編碼爲:ascii.因此出現問題。

解決:

如果出現編碼問題,怎麼設置編碼,百度可能會告訴你,使用:

# coding=<encoding name>

比如:# coding=utf-8

或者

# -*- coding: <encoding name> -*-

比如:# -*- coding: utf-8 -*-

但是,對於解決當前問題,這是胡扯,因爲這是別人寫的源代碼,我還要跑去修改別人的代碼嗎?而且這些代碼是緩存文件,出錯後會刪除。

這裏主要涉及默認編碼問題。

好了,你又百度如何設置默認編碼,百度娘說:

查看當前默認編碼:

>>import sys

>>sys.getdefaultencoding()

設置編碼:

>>import sys

>>sys.setdefaultencoding('utf-8')

的確,默認編碼改變了,但是現在如果在控制檯執行命令pip install ***

依然存在問題,原因是,默認編碼的確改變,但是隻對當前的環境有效,使用cmd執行命令會執行新的環境,默認編碼又變回了ascii.

另外種思路,如果能夠在執行cmd命令執行前,就執行

sys.setdefaultencoding('utf-8')

這樣命令,不就行了。

python的確在系統啓動時,會調用Lib\site-packages\sitecustomize.py

於是解決方案出來啦:

在Lib\site-packages\sitecustomize.py編寫設置默認編碼的代碼

一般:Lib\site-packages\sitecustomize.py會不存在,需要手動創建

需要設置不同默認編碼,把gbk改爲其他編碼就行

 Lib\site-packages\sitecustomize.py的內容如下

# encoding=utf8
import sys
reload(sys)
sys.setdefaultencoding('gbk')

 

測試:

cmd輸入指令:

python

>>import sys

>>sys.getdefaultencoding()

顯示的是你默認的編碼

現在pip install spyder解決了編碼問題

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章