Python PySFTP/Paramiko异常泄漏到stderr
我试图捕获Python PySFTP/Paramiko异常泄漏到stderr,python,exception,paramiko,stderr,pysftp,Python,Exception,Paramiko,Stderr,Pysftp,我试图捕获paramiko异常,但它们仍然被写入stderr 有没有办法停止在那里写作 编辑:甚至在帕拉米科介入之前就发生了: import pysftp try: pysftp.Connection(host="localhost") except Exception as e: print(e) 结果: 具有适当SFTP参数的示例: 更新: $ pipenv graph ... pysftp==0.2.9 - paramiko [required: >=1.
paramiko
异常,但它们仍然被写入stderr
有没有办法停止在那里写作
编辑:甚至在帕拉米科介入之前就发生了:
import pysftp
try:
pysftp.Connection(host="localhost")
except Exception as e:
print(e)
结果:
具有适当SFTP参数的示例:
更新:
$ pipenv graph
...
pysftp==0.2.9
- paramiko [required: >=1.17, installed: 2.6.0]
...
$ pipenv run python
Python 3.7.3 (default, Jul 19 2019, 11:21:39)
[Clang 11.0.0 (clang-1100.0.28.3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import pysftp
>>> try:
... pysftp.Connection(host="localhost")
... except Exception as e:
... print(e)
...
No hostkey for host localhost found.
Exception ignored in: <function Connection.__del__ at 0x10f7e8268>
Traceback (most recent call last):
File "/Users/andrei/Work/try/.venv/lib/python3.7/site-packages/pysftp/__init__.py", line 1013, in __del__
self.close()
File "/Users/andrei/Work/try/.venv/lib/python3.7/site-packages/pysftp/__init__.py", line 784, in close
if self._sftp_live:
AttributeError: 'Connection' object has no attribute '_sftp_live'
>>>
$pipenv图形
...
Pysfp==0.2.9
-paramiko[必需:>=1.17,已安装:2.6.0]
...
$pipenv运行python
Python 3.7.3(默认值,2019年7月19日,11:21:39)
关于达尔文的[Clang 11.0.0(Clang-1100.0.28.3)]
有关详细信息,请键入“帮助”、“版权”、“信用证”或“许可证”。
>>>导入PYSTFP
>>>尝试:
... pysftp.Connection(host=“localhost”)
... 例外情况除外,如e:
... 打印(e)
...
找不到主机localhost的主机密钥。
在中忽略异常:
回溯(最近一次呼叫最后一次):
文件“/Users/andrei/Work/try/.venv/lib/python3.7/site packages/pysftp/_init__.py”,第1013行,在_del中__
self.close()
文件“/Users/andrei/Work/try/.venv/lib/python3.7/site packages/pysftp/_init__.py”,第784行,关闭
如果自启动:
AttributeError:“Connection”对象没有属性“\u sftp\u live”
>>>
我想首先指出,PySFTP()已经有3年没有维护了(或者已经被移动到了另一个位置,到目前为止,这个位置是保密的:)
我重现了这个问题。下面是更详细的代码版本
代码00.py:
#/usr/bin/env蟒蛇3
导入系统
导入PYSTFP
导入回溯
def总管(argv):
如果argv else为“localhost”,则hostname=argv[0]
打印(“正在尝试连接到{0:s}…”。格式(主机名))
尝试:
打印(“--------------在conn----------之前”)
conn=pysftp.Connection(主机=主机名)
打印(“----连接后------------”)
除:
打印(“exc打印前----------------------”)
traceback.print_exc()
打印(exc打印后的----------------)
最后:
打印(“--------------最后------------”)
打印(“--try/except/finally------”)
如果名称=“\uuuuu main\uuuuuuuu”:
打印(“Python{0:s}{1:d}位在{2:s}.format(“.join(sys.version.split(“\n”))中的项的item.strip()),如果sys.maxsize>0x100000000,则为64,否则为32,sys.platform))
打印(“pysftp版本:{0:s}\n.”格式(pysftp.\uuuuuu版本)
main(sys.argv[1:])
打印(“\n完成”)
输出:
[cfati@CFATI-5510-0:e:\Work\Dev\StackOverflow\q058110732]>“e:\Work\Dev\VEnvs\py\u 064\u 03.07.03\u test0\Scripts\python.exe”code00.py
Python 3.7.3(v3.7.3:ef4ec6ed12,2019年3月25日,22:22:05)[MSC v.1916 64位(AMD64)]win32上的64位
pysftp版本:0.2.9
正在尝试连接到本地主机。。。
----------康涅狄格州前----------
e:\Work\Dev\VEnvs\py\u 064\u 03.07.03\u test0\lib\site packages\pysftp\\uuuuu init\uuuuuu.py:61:UserWarning:未能从C:\Users\cfati\.ssh\known\u主机加载主机密钥。您需要显式加载主机密钥(cnopts.HostKeys.load(filename))或禁用主机密钥检查(cnopts.HostKeys=None)。
警告。警告(wmsg、UserWarning)
----------exc打印前----------
回溯(最近一次呼叫最后一次):
文件“code00.py”,第13行,主
conn=pysftp.Connection(主机=主机名)
文件“e:\Work\Dev\VEnvs\py\u 064\u 03.07.03\u test0\lib\site packages\pysftp\\uuuuu init\uuu.py”,第132行,在\uu init中__
self.\u t连接['hostkey']=self.\u cnopts.get\u hostkey(主机)
文件“e:\Work\Dev\VEnvs\py\u 064\u 03.07.03\u test0\lib\site packages\pysftp\\uuuuuuuuu init\uuuuuuuuu.py”,第71行,在get\u hostkey中
引发SShexException(“未找到主机%s的主机密钥”。%host)
paramiko.ssh_exception.SSHException:找不到主机localhost的主机密钥。
----------exc打印后----------
在中忽略异常:
回溯(最近一次呼叫最后一次):
文件“e:\Work\Dev\VEnvs\py\u 064\u 03.07.03\u test0\lib\site packages\pysftp\\uuuuuuuuuu init\uuuuuuuu.py”,第1013行,在__
self.close()
文件“e:\Work\Dev\VEnvs\py\u 064\u 03.07.03\u test0\lib\site packages\pysftp\\uuuu init\uuu.py”,第784行,关闭
如果自启动:
AttributeError:“Connection”对象没有属性“\u sftp\u live”
----------最后----------
----------尝试/除外/最后----------
完成。
这是一个PySTFP错误:
- 我不是一个白痴专家
- 我没有权限(我既不能推送也不能提交拉取请求)
[cfati@CFATI-5510-0:e:\Work\Dev\StackOverflow\q058110732]>“e:\Work\Dev\VEnvs\py\u 064\u 03.07.03\u test0\Scripts\python.exe”code00.py
Python 3.7.3(v3.7.3:ef4ec6ed12,2019年3月25日,22:22:05)[MSC v.1916 64位(AMD64)]win32上的64位
pysftp版本:0.2.9
正在尝试连接到本地主机。。。
----------康涅狄格州前----------
e:\Work\Dev\VEnvs\py\u 064\u 03.07.03\u test0\lib\site packages\pysftp\\uuuuu init\uuuuuu.py:61:UserWarning:未能从C:\Users\cfati\.ssh\known\u主机加载主机密钥。您需要显式加载主机密钥(cnopts.HostKeys.load(filename))
import paramiko
host,port = "example.com",22
transport = paramiko.Transport((host,port))
username,password = "bar","foo"
transport.connect(None,username,password)
sftp = paramiko.SFTPClient.from_transport(transport)
client = pk.SSHClient()
client.set_missing_host_key_policy(pk.AutoAddPolicy())
client.connect(hostname=ip, port=22, username=userName, password=pwd)
ftp_client = client.open_sftp()