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

Posted

技术标签:

【中文标题】生成的 windows exe (pyinstaller) 无法加载 _cffi_backend【英文标题】:Generated windows exe (pyinstaller) could not load _cffi_backend 【发布时间】:2016-03-08 19:30:06 【问题描述】:

我正在尝试在 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天,任何建议和指导将不胜感激。

谢谢。

【问题讨论】:

有没有人可以给点建议? 你以前检查过这个问题吗?答案可能对您有所帮助:ImportError from compiled source code 【参考方案1】:

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

【讨论】:

以上是关于生成的 windows exe (pyinstaller) 无法加载 _cffi_backend的主要内容,如果未能解决你的问题,请参考以下文章

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

Python学习使用Pyinstaller将py文件导出为exe文件

pyinstaller --onefile 生成0KB exe

在 pyInstaller 生成的 Python EXE 中确定应用程序路径

使用pyinstaller打包Python应用,生成EXE执行文件

如何把Python脚本导出为exe程序