pysftp 与 Paramiko

pysftp vs. Paramiko

我有一个简单的要求,即在 SFTP 服务器上放置一个文件。我发现 pysftp 和 Paramiko 库似乎允许我这样做,并使用 Paramiko 开发了一个简单的应用程序,但我找不到合适的来源来比较两者,所以我可以决定我 can/should 使用哪个。各自的优缺点是什么?

pysftp 是 Paramiko 的包装器,具有更 Python-ish 的界面。

pysftp 接口不公开 Paramiko 的所有功能。另一方面,pysftp 在 Paramiko 之上实现了更多高级功能,特别是递归文件传输。


  • pysftp 自 2016 年以来就没有更新过,所以它似乎被遗弃了。它在其最新版本中也有一些从未修复过的重大问题。特别是在 Windows 上使用时,递归传输不起作用。所以在 Windows 上,pysftp 与(维护的)Paramiko 相比没有显着优势。

  • 如果您没有任何花哨的低级需求(如 , , , setting a timeout 等),pysftp 可能更容易使用。另一方面,由于 pysftp 似乎已死,用它开始新的开发可能不是个好主意。

  • 如果您需要低级功能,请使用 Paramiko。

  • 如果您同时需要 Paramiko 的低级功能和 pysftp 的高级功能,请使用 Paramiko 并检查 pysftp code 以获得高级功能。或者,递归传输的完整且独立于平台的实现也显示在我对以下问题的回答中:

  • 您可以使用 pysftp Connection.sftp_client, which returns underlying Paramiko SFTPClient object. For an example, see .

    访问 pysftp 中未公开的一些 Paramiko 功能