生成的Windows exe(pyinstaller)无法加载_cffi_backend

时间:2015-12-04 00:03:09

标签: python pyinstaller python-cffi

我试图在windows7(x64)上使用pyinstaller(3.0)生成可执行文件(x86)。我已经用pip安装了cffi和其他所需的软件包。我可以从命令行成功导入cffi和_cffi_backend模块:

>>> import cffi
>>> import _cffi_backend
>>> cffi.__file__
'C:\\Program Files (x86)\\Python27\\lib\\site-packages\\cffi\\__init__.pyc'
>>> _cffi_backend.__file__
'C:\\Program Files (x86)\\Python27\\lib\\site-packages\\_cffi_backend.pyd'
  
    

>

  

尝试运行生成的可执行文件时,我收到以下错误:

  File "C:\Program Files (x86)\Python27\lib\site-packages\cryptography\hazmat\bindings\openssl\binding.py", line 13, in <module>
    from cryptography.hazmat.bindings._openssl import ffi, lib
  File "c:\program files (x86)\python27\lib\site-packages\PyInstaller-3.0-py2.7.egg\PyInstaller\loader\pyimod03_importers.py", line 517, in load_module
    module = imp.load_module(fullname, fp, filename, ext_tuple)
ImportError: No module named _cffi_backend

您可能会看到完整的启动日志here

顺便说一句,我用mingw编译了libcffi库并得到了一个DLL文件。然后复制到其中一个库路径,我再次在应用程序启动时遇到相同的错误。

我不知道为什么_cffi_backend库无法在应用程序启动时加载,即使它存在并且在python路径中也是如此。我不擅长python,不幸的是我被困在这近2天,任何建议和指导都将受到赞赏。

感谢。

1 个答案:

答案 0 :(得分:4)

使用pyinstaller构建时,只需添加--hidden-import=_cffi_backend选项。