使用Paramiko连接到SFTP服务器失败,原因是“需要整数(获取类型str)”

2024-10-01 17:39:32 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试运行以下代码:

#!/data/go_dl/resources/miniconda3/envs/stg01.nifi_Env/bin/python
import sys
import paramiko
import socket

sftpHost = 'eng-test-host'
sftpPort = '22'
sftpUser = 'user_1'
sftpPass = '123456'
sftpPathSource = '/tmp/poc/'
localPath = '/data/poc/'
sftpIMGFiles = 'test.IMG'


transport=paramiko.Transport((sftpHost, sftpPort))
transport.connect(username=sftpUser, password=sftpPass)
sftp=paramiko.SFTPClient.from_transport(transport)

sftp.put(sftpPathSource + sftpIMGFiles +  localPath + sftpIMGFiles)
sftp.close()
transport.close()

class FastTransport(paramiko.Transport):
    def __init__(self, sock):
        super(FastTransport, self).__init__(sock)

但我得到了一个错误:

Traceback (most recent call last):
  File "gettingTtsFile.py", line 18, in <module>
    transport=paramiko.Transport((sftpHost, sftpPort))
  File "/data/go_dl/resources/miniconda3/lib/python3.8/site-packages/paramiko/transport.py", line 409, in __init__
    retry_on_signal(lambda: sock.connect((hostname, port)))
  File "/data/go_dl/resources/miniconda3/lib/python3.8/site-packages/paramiko/util.py", line 283, in retry_on_signal
    return function()
  File "/data/go_dl/resources/miniconda3/lib/python3.8/site-packages/paramiko/transport.py", line 409, in <lambda>
    retry_on_signal(lambda: sock.connect((hostname, port)))
TypeError: an integer is required (got type str)

有人能帮我吗?我尝试运行的Python版本是3.8.5,Paramiko是2.7.2

谢谢


Tags: inpyimportgoparamikodatalinefile

热门问题