我正在尝试将pyOpenSSL包包含在虚拟环境中的可执行文件中。可执行文件构建时没有错误但是当我运行时它失败并显示错误“DLL加载失败:无法找到指定的模块”。
经过调查,似乎pyOpenSSL中的两个DLL(libeay32.dll& ssleay32.dll)未包含在可执行文件中。我最终通过将DLL放在路径上并运行可执行文件来证明这一点。
任何人都可以建议最简单的方法来强制将丢失的DLL包含在包中。
非常感谢
答案 0 :(得分:1)
听起来您需要在spec文件中手动指定DLL。有关spec文件中有效数据类型的更多信息,请查看documentation on the TOC Class。似乎您想要使用BINARY
。
答案 1 :(得分:0)
我刚从pyOpenSSL v.0.13(有一个Windows的msi安装程序)升级到v.0.15(我通过" pip"使用Python v.2.7.9安装)。在此之前,pyInstaller运行良好。在此之后,pyInstaller无法生成工作包。结果是缺少一个依赖。然而,这不是一个dll,而是一个pyd。
只需将文件C:\ Python27 \ Lib \ site-packages \ _cffi_backend.pyd复制到与pyInstaller创建的exe相同的目录即可解决问题。