导入paramiko库时报 UnicodeDecodeError 错误的解决方案
来源:互联网 发布:java基础自学需要多久 编辑:程序博客网 时间:2024/06/10 21:00
背景:
远程控制服务器实现日志的抓取、文件的上传等。可能很多同学会使用到paramiko库。
环境:
如果实在Windows环境下需安装VCForpython27.msi。然后需安装paramiko库。(安装先后顺序可能不能颠倒,同学们可以试一下)
切入正题吧。
问题:
导入paramiko库时报 UnicodeDecodeError: 'ascii' codec can't decode byte 0xd7 in position 3: ordinal not in range(128) 错误
详细错误如下:
C:\Python27\python.exe F:/download.py
Traceback (most recent call last):
File "F:/download.py", line 5, in <module>
import paramiko
File "C:\Python27\lib\site-packages\paramiko\__init__.py", line 31, in <module>
from paramiko.transport import SecurityOptions, Transport
File "C:\Python27\lib\site-packages\paramiko\transport.py", line 56, in <module>
from paramiko.dsskey import DSSKey
File "C:\Python27\lib\site-packages\paramiko\dsskey.py", line 27, in <module>
from cryptography.hazmat.primitives.asymmetric.utils import (
File "C:\Python27\lib\site-packages\cryptography\hazmat\primitives\asymmetric\utils.py", line 9, in <module>
from asn1crypto.algos import DSASignature
File "C:\Python27\lib\site-packages\asn1crypto\algos.py", line 23, in <module>
from ._int import fill_width
File "C:\Python27\lib\site-packages\asn1crypto\_int.py", line 56, in <module>
from ._perf._big_num_ctypes import libcrypto
File "C:\Python27\lib\site-packages\asn1crypto\_perf\_big_num_ctypes.py", line 31, in <module>
libcrypto_path = find_library('crypto')
File "C:\Python27\lib\ctypes\util.py", line 53, in find_library
fname = os.path.join(directory, name)
File "C:\Python27\lib\ntpath.py", line 85, in join
result_path = result_path + p_path
UnicodeDecodeError: 'ascii' codec can't decode byte 0xd7 in position 3: ordinal not in range(128)
Process finished with exit code 1
解决问题历程:
1、该代码以前是调试通过了的,后来有重新装了PYTHON环境。所以怀疑环境问题。故重新安装了VCForpython27和paramiko库
----问题没有得到解决
2、看错误日志最后出问题的地方是:result_path = result_path + p_path。且提示解码出了问题。故可能是中文问题。在代码中加了
import sysreload(sys)sys.setdefaultencoding('utf-8')然并卵,还是报同样的错误
3、因为Windows下的编码是gbk,故可能在导入库运行路径是不能解码。方案1:修改Lib\site.py,加上
# import sys
# reload(sys)
# sys.setdefaultencoding('gbk')
方案2:在paramiko库前面加上
# import sys
# reload(sys)
# sys.setdefaultencoding('gbk')
大功告成!!!!
报错截图:
- 导入paramiko库时报 UnicodeDecodeError 错误的解决方案
- paramiko报UnicodeDecodeError错误
- oracle导入dmp时报错的解决方案
- Python的UnicodeDecodeError错误
- TinyOS生成docs时报UnicodeDecodeError: 'ascii' codec can't decode byte错误的解决方法
- scrapy运行时报UnicodeDecodeError的解决方法
- Python 2.7 :导入 matplotlib出现UnicodeDecodeError错误
- IMP导入数据库时报缓冲区长度不够的解决方案
- UnicodeDecodeError解决方案
- 导入时报ORA-39095错误
- Python-解决pip安装库时UnicodeDecodeError的错误
- springmvc+mybatis+c3p0 tomcat启动时报的错误,求解决方案
- MySQL创建Function时报错误码1418的解决方案
- 处理 paramiko.SSHClient 的 “Unknown server ” 错误
- Python使用easy-install安装时报UnicodeDecodeError的解决方法
- robotframework 导入类库之后出现UnicodeDecodeError
- 备忘:yum出现UnicodeDecodeError错误的解决办法
- Python3中urllib的UnicodeDecodeError错误
- Netty ByteBuf 释放注意事项
- 网站开发(九)后台栏目的删除操作
- 微信中Google坐标转换为百度地图坐标
- Android 接入银联支付
- 生成随机数
- 导入paramiko库时报 UnicodeDecodeError 错误的解决方案
- dll包含的函数
- not null
- http://blog.csdn.net/liuxingyu_21/article/details/18412123
- springboot异常处理
- Mapreduce和yarn的内存配置
- 文章标题 POJ 1087 : A Plug for UNIX (最大流)
- 嵌入式资料合集
- Spark Streaming---Streaming Word Count(java)