生成的Windows可执行文件(使用pyinstaller)无法加载_cffi_backend。

7

我正在尝试在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

您可以在这里查看完整的启动日志。
顺便说一下,我使用mingw编译了libcffi库并得到了一个DLL文件。然后将其复制到其中一个库路径中,但在应用程序启动时仍然出现了相同的错误。
我不知道为什么在应用程序启动时无法加载_cffi_backend库,即使它存在于Python路径中。我不擅长Python,不幸的是,我已经卡了近两天,任何建议和指导将不胜感激。
谢谢。

有人能给出任何建议吗? - mgundes
你之前有没有查过这个问题?答案可能会对你有帮助:从编译的源代码导入错误 - selimcan
1个回答

9

在使用 pyinstaller 进行编译时,只需添加 --hidden-import=_cffi_backend 选项即可。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接