【问题标题】:How to fix "ImportError: cannot import name _AES" from Crypto.Cipher二进制构建上的 Python ImportError (_AES)
【发布时间】:2015-09-17 00:47:12
【问题描述】:

我正在使用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。我已经尝试从源代码和通过pip 安装pycrypto,两者都是相同的ImportError
  • 平台:Linux ubuntu 3.13.0-32-generic x86_64 x86_64 GNU/Linux

【问题讨论】:

  • 很可能没有构建(或者如果构建)扩展不适合您。
  • @gabhijit:我尝试从源代码和通过pip 安装pycrypto,两者都相同ImportError
  • 或许你可以参考Python AES import error Please

标签: python importerror pyinstaller pycrypto


【解决方案1】:

他们的开发人员已停止进一步升级。所以改用 pycryptodome 代替 pycrypto。

pip install pycryptodome

现在它工作正常(对我有用)!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-11-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-26
    • 1970-01-01
    相关资源
    最近更新 更多