我想从我的 python 脚本生成一个可执行文件。为此,我使用 pyinstaller。我在使用 mkl 库时遇到问题,因为我在脚本中使用了 numpy。
我用这个 钩子 解决了这个问题,效果很好。但是如果我将单个可执行文件复制到另一个目录并执行它,它就不起作用。我想我也必须复制钩子。但我只想拥有一个可以在其他计算机上使用的文件,而无需复制 .dll's
或挂钩。
我还按照 此处 所述更改了 .spec
文件,并将必要的文件添加到 binaries
变量中。只要 .dll's
位于为 binaries
提供的目录中,这也有效,但是当我在没有的计算机上使用可执行文件时,这将不起作用这些 .dll's
。
我尝试使用 --hidden-import= FILENAME
选项。这也解决了问题,但只是在某处提供了 .dll's
时。
我正在寻找的是将 .dll's
捆绑到单个可执行文件中的可能性,以便我有一个独立工作的文件。
原文由 David P 发布,翻译遵循 CC BY-SA 4.0 许可协议
当我遇到此处描述的问题时 https://github.com/ContinuumIO/anaconda-issues/issues/443 我的解决方法是
pyinstaller -F --add-data vcruntime140.dll;. myscript.py
-F
- 收集到一个 *.exe 文件.
- exe文件中dll的目标路径来自文档 http://pyinstaller.readthedocs.io/en/stable/spec-files.html#adding-data-files