首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >pysftp为pysftp.exceptions.ConnectionException:(主机,端口)提供了没有详细信息的

pysftp为pysftp.exceptions.ConnectionException:(主机,端口)提供了没有详细信息的
EN

Stack Overflow用户
提问于 2017-04-19 15:07:23
回答 1查看 5.7K关注 0票数 0

我试图用pysftp库连接到sftp服务器。这是我的代码:

代码语言:javascript
复制
import pysftp

cnopts = pysftp.CnOpts()
cnopts.hostkeys = None

with pysftp.Connection("sftp://host", "login", "password", cnopts=cnopts) as sftp:
    sftp.listdir()

它给了我一个例外:

pysftp.exceptions.ConnectionException:(“主机”,端口)

但我不知道这个例外意味着什么,问题是什么。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-04-19 15:34:07

您没有太多的解释,因为这个库有错误。请参阅BitBucket上的源代码。

ConnectionException类没有很好地实现:

代码语言:javascript
复制
class ConnectionException(Exception):
    """Exception raised for connection problems

    Attributes:
        message  -- explanation of the error
    """

    def __init__(self, host, port):
        # Call the base class constructor with the parameters it needs
        Exception.__init__(self, host, port)
        self.message = 'Could not connect to host:port.  %s:%s'

如您所见,格式‘无法连接到主机。%s:%s:%s'没有填充主机和端口值。

但是,异常的名称是明确的:您有一个连接错误。

不幸的是,错误的细节丢失了:

代码语言:javascript
复制
def _start_transport(self, host, port):
    '''start the transport and set the ciphers if specified.'''
    try:
        self._transport = paramiko.Transport((host, port))
        # Set security ciphers if set
        if self._cnopts.ciphers is not None:
            ciphers = self._cnopts.ciphers
            self._transport.get_security_options().ciphers = ciphers
    except (AttributeError, socket.gaierror):
        # couldn't connect
        raise ConnectionException(host, port)

您可以尝试获取最后一个错误(不确定):

代码语言:javascript
复制
import sys

sys.exc_info()

注意:,我建议您使用另一个库(例如帕拉米科)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43499555

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档