python中的_fastmath错误:HAVE_DECL_MPZ_POWM_SEC

who*_*iac 10 python paramiko pycrypto

我在Red Hat 6.4上运行python 2.6

我使用paramiko sftp在一台机器上运行了一个脚本.当我把它转移到另一台机器时,我得到了一个例外:( SFTP file has no attribute __exit__沿着这些方向的东西).

我决定用pip升级paramiko(认为它会解决问题).现在我在运行python脚本时得到这个:

  ...
  File "/usr/lib/python2.6/site-packages/paramiko/__init__.py", line 64, in <module>
    from transport import SecurityOptions, Transport
  File "/usr/lib/python2.6/site-packages/paramiko/transport.py", line 33, in <module>
    from paramiko import util
  File "/usr/lib/python2.6/site-packages/paramiko/util.py", line 33, in <module>
    from paramiko.common import *
  File "/usr/lib/python2.6/site-packages/paramiko/common.py", line 98, in <module>
    from Crypto import Random
  File "/usr/lib64/python2.6/site-packages/Crypto/Random/__init__.py", line 29, in <module>
    from Crypto.Random import _UserFriendlyRNG
  File "/usr/lib64/python2.6/site-packages/Crypto/Random/_UserFriendlyRNG.py", line 38, in <module>
    from Crypto.Random.Fortuna import FortunaAccumulator
  File "/usr/lib64/python2.6/site-packages/Crypto/Random/Fortuna/FortunaAccumulator.py", line 39, in <module>
    import FortunaGenerator
  File "/usr/lib64/python2.6/site-packages/Crypto/Random/Fortuna/FortunaGenerator.py", line 34, in <module>
    from Crypto.Util.number import ceil_shift, exact_log2, exact_div
  File "/usr/lib64/python2.6/site-packages/Crypto/Util/number.py", line 56, in <module>
    if _fastmath is not None and not _fastmath.HAVE_DECL_MPZ_POWM_SEC:
AttributeError: 'module' object has no attribute 'HAVE_DECL_MPZ_POWM_SEC'
Run Code Online (Sandbox Code Playgroud)

所以帮忙!!

Squ*_*ree 18

您的系统中似乎安装了多个PyCrypto库.这个bug报告的PyCrypto trackiong系统上似乎与:

我的猜测是你在系统范围内安装了python-crypto-2.0.1 RPM,并且你在构建和安装更高版本的PyCrypto时没有安装gmp-devel,所以你使用的是更新版本的PyCrypto使用旧版本的_fastmath.

您可以尝试按照建议执行:安装gmp-devel包,然后使用PyCrypto pip.


小智 14

对我来说,问题是我通过yum安装了python-crypto包,然后还通过pip安装了pycrypto模块.

yum remove python-crypto
Run Code Online (Sandbox Code Playgroud)

为我工作.