Python ImportError при бинарной сборке (_AES)

Я использую модуль pycrypto для шифрования файлов, при запуске кода с кодом Python он работает хорошо:

$ python encrypt_file.py file

но при сборке encrypt_file.py в двоичный файл:

$ pyinstaller -F zip_disk.py

и запустите бинарник под dist

$ ./encrypt_file file

скиньте ошибку:

File "<string>", line 24, in <module>
File "/usr/local/lib/python2.7/dist-packages/PyInstaller-2.1-py2.7.egg/PyInstaller/loader/pyi_importers.py", line 270, in load_module
exec(bytecode, module.__dict__)
File "/home/xxxx/zip_disk/build/zip_disk/out00-PYZ.pyz/Crypto.Cipher.AES", line 50, in <module>
ImportError: cannot import name _AES

Почему это происходит? Как исправить бинарную сборку ImportError?

  • Мой оператор импорта from Crypto.Cipher import AES
  • версия Python: Python 2.7.6
  • Моя версия PyCrypto — 2.6.1. Я пробовал установить pycrypto из исходников и через pip, оба одинаковые ImportError.
  • платформа: Linux ubuntu 3.13.0-32-универсальный x86_64 x86_64 GNU/Linux

person coanor    schedule 30.06.2015    source источник
comment
Скорее всего, расширения не построены (или, если построены), находятся не на правильном для вас пути.   -  person gabhijit    schedule 30.06.2015
comment
@gabhijit: я пытался установить pycrypto из исходного кода и через pip, оба одинаковые ImportError   -  person coanor    schedule 30.06.2015
comment
Возможно, вы могли бы обратиться к ошибка импорта Python AES, пожалуйста   -  person Eric Tsui    schedule 30.06.2015


Ответы (1)


Их разработчики прекратили дальнейшие обновления. поэтому вместо этого используйте pycryptodome, который заменяет pycrypto.

pip install pycryptodome

Теперь все работает нормально (у меня получилось)!

person Joshua    schedule 25.03.2020