【Python】使用pip install时出现UnicodeDecodeError错误解决方法
2017-11-27 17:14
513 查看
今天在公司的win7 电脑上在配置好Python并安装上pip后,打算用pip安装一些常用包。但是安装包的时候出现了错误,是在之前电脑上都没有出现的。然后网上查询知道了原因。是编码问题
看最后的报错信息,这个一般都是从开始追溯信息源:
UnicodeDecodeError:‘ascii’codec can’t decode byte 0xe9 inposition 7: ordinal not in range
'UnicodeDecodeError'这个词已经暴露了这个问题是个编码问题
问题出现原因:pip把下载的临时文件存放在了用户临时文件中,这个目录一般是C:\Users\用户名\AppData\Local\Temp,目录名中有中文,显然ascii这种编码是不支持的
公司电脑的用户名是中文的,我自己电脑是administrator。因此之前没有发现这个问题
解决办法:
然后在网上找的了下面的解决办法,对比试过几个方法后,选择下面的简单推荐给大家。亲测有效
1)python目录 Python27\Lib\site-packages (我自己的目录地址 D:\Python27\Lib\site-packages)
2)建一个文件sitecustomize.py
3)内容写:
import sys
sys.setdefaultencoding('gb2312')
python会自动运行这个文件。然后输入下载安装命令就可以了。
然后就可以正常使用pip下载了
如果还是不行,或者过了一段时间又不行了,就像我,一个月后再使用还是报错,之前的sitecustomize.py
内容变了,替换为原来的也不行。这个时候找到了第2个方法
1、进入到 “XXX\Python27\Lib”
2.找到 “mimetypes.py”
3.粘贴如下代码在 import sys 下,保存
4、再次执行 pip install就可以成功的安装类库啦
if sys.getdefaultencoding() != 'GBK':
reload(sys)
sys.setdefaultencoding('GBK')
看最后的报错信息,这个一般都是从开始追溯信息源:
UnicodeDecodeError:‘ascii’codec can’t decode byte 0xe9 inposition 7: ordinal not in range
'UnicodeDecodeError'这个词已经暴露了这个问题是个编码问题
问题出现原因:pip把下载的临时文件存放在了用户临时文件中,这个目录一般是C:\Users\用户名\AppData\Local\Temp,目录名中有中文,显然ascii这种编码是不支持的
公司电脑的用户名是中文的,我自己电脑是administrator。因此之前没有发现这个问题
解决办法:
然后在网上找的了下面的解决办法,对比试过几个方法后,选择下面的简单推荐给大家。亲测有效
1)python目录 Python27\Lib\site-packages (我自己的目录地址 D:\Python27\Lib\site-packages)
2)建一个文件sitecustomize.py
3)内容写:
import sys
sys.setdefaultencoding('gb2312')
python会自动运行这个文件。然后输入下载安装命令就可以了。
然后就可以正常使用pip下载了
如果还是不行,或者过了一段时间又不行了,就像我,一个月后再使用还是报错,之前的sitecustomize.py
内容变了,替换为原来的也不行。这个时候找到了第2个方法
1、进入到 “XXX\Python27\Lib”
2.找到 “mimetypes.py”
3.粘贴如下代码在 import sys 下,保存
4、再次执行 pip install就可以成功的安装类库啦
if sys.getdefaultencoding() != 'GBK':
reload(sys)
sys.setdefaultencoding('GBK')
相关文章推荐
- 【Python】使用pip install时出现UnicodeDecodeError错误解决方法
- python中尝试pip install PIL,出现错误的解决方法
- python2.7无法使用pip的解决方法(安装easy_install)
- Python pip install出现报ASCII码错误解决办法
- 使用Genymotion出现错误INSTALL_FAILED_CPU_ABI_INCOMPATIBLE解决方法
- 使用sudo pip install 安装python包出错的解决方法
- Delphi使用BDE连接远程MS SQL SERVER 2000数据库时出现“Db-library network communciations layer not loaded.”错误的解决方法
- Asp.net中建立MS office组件时出现“拒绝访问”和“消息筛选器显示应用程序正在使用中”错误的解决方法
- Delphi使用BDE连接远程MS SQL SERVER 2000数据库时出现“Db-library network communciations layer not loaded.”错误的解决方法
- 关于使用ASP.NE 1.1发送电子邮件时出现的 未能访问“CDO.Message”对象 的错误的解决方法
- 使用OleDbCommandBuilder时出现“Insert into 语句的语法错误”的解决方法
- (System)使用windows更新出现0x8DDD0018编号错误的解决方法
- 使用SqlBulkCopy对象进行大容量复制数据出现Datardader已经存在的错误的解决方法
- VB使用Winsock出现 实时错误 '87' 解决方法
- 使用jfreechart画图时,出现错误 Null 'key' argument的解决方法
- 使用OleDbCommandBuilder时出现“Insert into 语句的语法错误”的解决方法(转)
- Delphi使用BDE连接远程MS SQL SERVER 2000数据库时出现“Db-library network communciations layer not loaded.”错误的解决方法
- 使用OleDbCommandBuilder时出现“Insert into 语句的语法错误”的解决方法
- 如何解决FormView中实现DropDownList连动选择时出现 "Eval()、XPath() 和 Bind() 这类数据绑定方法只能在数据绑定控件的上下文中使用" 的错误
- 安装tomcat出现failed to install tomcat6 service ,check your setting and permissio错误及解决方法