Ошибка импорта Python: невозможно импортировать модуль с именем _counter (это файл.so)

Я использую Jython для выполнения сценария Python connect_host.py, который использует модуль paramiko для подключения к указанному хосту.

Модуль paramiko внутренне использует модуль Crypto, а модуль Crypto.Util использует Counter.py, который, в свою очередь, пытается импортировать _counter, который находится в том же месте Crypto.Util, но в виде файла.so.

При выполнении python выдает следующую ошибку:

 File "/location/helper/connect_host.py", line 3, in <module>
    import paramiko
 File "/python/modules/paramiko/__init__.py", line 69, in <module>
    from transport import SecurityOptions, Transport
 File "/python/modules/paramiko/transport.py", line 32, in <module>
    from paramiko import util
 File "/python/modules/paramiko/util.py", line 32, in <module>
    from paramiko.common import *
  File "/python/modules/paramiko/common.py", line 98, in <module>
    from Crypto import Random
  File "/python/modules/Crypto/Random/__init__.py", line 29, in <module>
    from Crypto.Random import _UserFriendlyRNG
  File "/python/modules/Crypto/Random/_UserFriendlyRNG.py", line 38, in <module>
    from Crypto.Random.Fortuna import FortunaAccumulator
  File "/python/modules/Crypto/Random/Fortuna/FortunaAccumulator.py", line 39, in <module>
    import FortunaGenerator
  File "/python/modules/Crypto/Random/Fortuna/FortunaGenerator.py", line 35, in <module>
    from Crypto.Util import Counter
  File "/python/modules/Crypto/Util/Counter.py", line 29, in <module>
    from Crypto.Util import _counter
ImportError: cannot import name _counter

Как заставить Jython загружать модуль _counter, который является.so файлом??????

1 ответ

В этой документации по Python сказано:

Jython - это реализация языка Python для платформы Java. Jython 2.7 реализует тот же язык, что и CPython 2.7....

... Программы Jython в настоящее время не могут использовать модули расширения CPython, написанные на C. Эти модули обычно имеют файлы с расширением.so,.pyd или.dll.

Если import _counter, присутствует в том же месте, что и Crypto.Util но как .so файл, это объясняет, почему он не запускается из Jython.

Другие вопросы по тегам