【问题标题】:paramiko 'module' has no attribute 'new'paramiko 'module' 没有属性 'new'
【发布时间】:2017-05-26 14:59:49
【问题描述】:

我使用此代码 FTP 图像已经一年多了,没有任何改变,然后我在尝试 FTP 时突然出错。我试过重启/等。代码是(我已经用'...'替换了地址):

with pysftp.Connection('...', username='...', password='...') as sftp:
    sftp.cd('...')
    sftp.put(figure1)

使用 paramiko v1.16 和 v2.1.2 时出现以下错误(尝试更新版本,但没有解决):

    ERROR:paramiko.transport:Unknown exception: 'module' object has no attribute 'new'

    ERROR:paramiko.transport:Traceback (most recent call last):

    ERROR:paramiko.transport:  File "C:\Users\Default.Default-PC\AppData\Local\Enthought\Canopy\User\lib\site-packages\paramiko\transport.py", line 1744, in run

    ERROR:paramiko.transport:    self.kex_engine.parse_next(ptype, m)

    ERROR:paramiko.transport:  File "C:\Users\Default.Default-PC\AppData\Local\Enthought\Canopy\User\lib\site-packages\paramiko\kex_group1.py", line 75, in parse_next

    ERROR:paramiko.transport:    return self._parse_kexdh_reply(m)

    ERROR:paramiko.transport:  File "C:\Users\Default.Default-PC\AppData\Local\Enthought\Canopy\User\lib\site-packages\paramiko\kex_group1.py", line 111, in _parse_kexdh_reply

    ERROR:paramiko.transport:    self.transport._verify_key(host_key, sig)

    ERROR:paramiko.transport:  File "C:\Users\Default.Default-PC\AppData\Local\Enthought\Canopy\User\lib\site-packages\paramiko\transport.py", line 1604, in _verify_key

    ERROR:paramiko.transport:    if not key.verify_ssh_sig(self.H, Message(sig)):

    ERROR:paramiko.transport:  File "C:\Users\Default.Default-PC\AppData\Local\Enthought\Canopy\User\lib\site-packages\paramiko\rsakey.py", line 112, in verify_ssh_sig

    ERROR:paramiko.transport:    rsa = RSA.construct((long(self.n), long(self.e)))

    ERROR:paramiko.transport:  File "C:\Users\Default.Default-PC\AppData\Local\Enthought\Canopy\App\appdata\canopy-1.5.2.2785.win-x86_64\lib\site-packages\Crypto\PublicKey\RSA.py", line 540, in construct

    ERROR:paramiko.transport:    return _RSAobj(self, key)

    ERROR:paramiko.transport:  File "C:\Users\Default.Default-PC\AppData\Local\Enthought\Canopy\App\appdata\canopy-1.5.2.2785.win-x86_64\lib\site-packages\Crypto\PublicKey\RSA.py", line 117, in __init__

    ERROR:paramiko.transport:    randfunc = Random.new().read

    ERROR:paramiko.transport:  File "C:\Users\Default.Default-PC\AppData\Local\Enthought\Canopy\App\appdata\canopy-1.5.2.2785.win-x86_64\lib\site-packages\Crypto\Random\__init__.py", line 33, in new

    ERROR:paramiko.transport:    return _UserFriendlyRNG.new(*args, **kwargs)

    ERROR:paramiko.transport:AttributeError: 'module' object has no attribute 'new'

    AttributeError                            Traceback (most recent call last)
    C:\Ceilometer_Code\launch_plot_CL31_YFB.py in <module>()
        261     print 'Launching sftp '
    --> 262     with pysftp.Connection('...', username='...', password='...') as sftp:
        263         sftp.cd('...')
        264         sftp.put(figure1)

    C:\Ceilometer_Code\pysftp.pyc in __init__(self, host, username, private_key, password, port, private_key_pass, ciphers, log)
        160         if password is not None:
        161             # Using Password.
    --> 162             self._transport.connect(username=username, password=password)
        163         else:
        164             # Use Private Key.

    C:\Users\Default.Default-PC\AppData\Local\Enthought\Canopy\User\lib\site-packages\paramiko\transport.pyc in connect(self, hostkey, username, password, pkey, gss_host, gss_auth, gss_kex, gss_deleg_creds)
       1070             self._preferred_keys = [hostkey.get_name()]
       1071 
    -> 1072         self.start_client()
       1073 
       1074         # check host key if we were given one

    C:\Users\Default.Default-PC\AppData\Local\Enthought\Canopy\User\lib\site-packages\paramiko\transport.pyc in start_client(self, event)
        490                 e = self.get_exception()
        491                 if e is not None:
    --> 492                     raise e
        493                 raise SSHException('Negotiation failed.')
        494             if event.is_set():

    AttributeError: 'module' object has no attribute 'new' 

有谁知道如何解决这个问题?我已经确认我的 SFTP un/pw 是正确的,可以上网,等等。

【问题讨论】:

  • 您的加密包可能有问题。尝试重新安装加密包 - link
  • 尝试重新安装,没有任何变化。还有什么你能想到的吗?我什至不确定这是哪里出了问题。
  • 根据您的堆栈跟踪,Crypto 肯定会出错。我无法重新创建您的环境,所以我不知道如何帮助您修复它:(
  • 进行了加密更新并且它有效 - 问题结束了。不知道为什么加密突然失败了?很奇怪。谢谢你们!

标签: python ftp paramiko


【解决方案1】:

需要加密更新;错误现在消失了,FTP 正常。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-12-02
    • 1970-01-01
    • 2016-11-09
    • 2014-04-26
    • 2021-01-15
    • 2011-12-02
    • 2015-05-16
    • 1970-01-01
    相关资源
    最近更新 更多