Python 2.6 -- paramiko 导入错误

1 投票
1 回答
527 浏览
提问于 2025-04-18 14:15

我有一些脚本每30分钟在cron中运行,这些脚本会导入paramiko库。看起来随机的时候,我会在导入时遇到以下两个错误之一:

Traceback (most recent call last):
  ...
  File "build/bdist.linux-x86_64/egg/paramiko/__init__.py", line 65, in <module>
  File "build/bdist.linux-x86_64/egg/paramiko/transport.py", line 42, in <module>
  File "build/bdist.linux-x86_64/egg/paramiko/packet.py", line 39, in <module>
  File "build/bdist.linux-x86_64/egg/Crypto/Hash/HMAC.py", line 66, in <module>
  File "build/bdist.linux-x86_64/egg/Crypto/Util/strxor.py", line 7, in <module>
  File "build/bdist.linux-x86_64/egg/Crypto/Util/strxor.py", line 6, in __bootstrap__
ImportError: dynamic module does not define init function (initstrxor)

-- 或者 --

Traceback (most recent call last):
  ...
  File "build/bdist.linux-x86_64/egg/paramiko/__init__.py", line 65, in <module>
  File "build/bdist.linux-x86_64/egg/paramiko/transport.py", line 53, in <module>
  File "build/bdist.linux-x86_64/egg/Crypto/Cipher/ARC4.py", line 66, in <module>
  File "build/bdist.linux-x86_64/egg/Crypto/Cipher/_ARC4.py", line 7, in <module>
  File "build/bdist.linux-x86_64/egg/Crypto/Cipher/_ARC4.py", line 6, in __bootstrap__
ImportError: dynamic module does not define init function (init_ARC4)

每次我遇到这个问题时,只需重新运行脚本,就能让paramiko正确导入,脚本也能顺利完成。

是什么原因导致这个问题的呢?非常感谢任何帮助。

1 个回答

0

虽然我不知道是什么导致了这个错误,但看起来问题出在pycrypto的本地部分。所以你可以尝试重新运行几次:

from time import sleep
n_tries= 3
import_success= False

while not import_success:
    try:
        from Crypto.Cipher import Blowfish, AES, DES3, ARC4
        from Crypto.Hash import MD5, SHA, SHA256, HMAC
        from Crypto import Random
        from Crypto.PublicKey import DSA, RSA
        from Crypto.Util import Counter, number
        import_success= True
    except ImportError:
        if not n_tries:
            raise #re-raise ImportError
        n_tries-=1
        sleep(1)

撰写回答