#python #ssh #sftp #paramiko
#python #ssh #sftp #paramiko
Вопрос:
Я пытаюсь запустить следующий код :
#!/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.
Спасибо
Ответ №1:
port
Число arg в paramiko.Transport
должно быть an int
, а не str
sftpHost = 'eng-test-host'
sftpPort = 22 # Note this is int and not str
transport=paramiko.Transport((sftpHost, sftpPort))
Комментарии:
1. omg…in мое лицо, и я не видел …, пробовал много вещей, но не это, спасибо DhakkanCoder.