【问题标题】:Python/C API project - compile to exePython/C API 项目 - 编译为 exe
【发布时间】:2020-11-11 05:57:57
【问题描述】:

我正在开发使用 Python/C API 和 C++ 的项目。 C++ 用于大部分应用程序,主要用于 gui (wxWidgets),而 Python 用于大型数据集的计算,例如从文件。我在 Visual Studio 中执行此操作,当我在 IDE 中运行项目时,一切正常,就像我想要的那样。此外,在 Visual Studio 中启动项目期间创建的 exe 文件,当它与 python .py 文件位于同一文件夹中时,也可以正常工作。但我想要实现的是一个exe文件中包含一个完整的应用程序。

在寻找解决方案时,我发现了从 python 文件创建 exe 的各种可能性。例如,我测试了一个简单的“hello world”python 文件的 PyInstaller,它可以工作。但是,我不知道也找不到如何将可视化创建的 exe 与 python 文件相结合的解决方案。

在 PyInstaller github 问题中,我发现了这一行:

pyinstaller App.py --add-data 'pathtoexe\your.exe;.' --add-binary "pathtodll\your.dll;." --onefile --noconsole --clean

我在控制台中输入了这个:

pyinstaller myPythonFile.py --add-data 'myVisualGeneratedFile.exe;.' --onefile --noconsole --clean

但是在那之后,当我点击生成的 exe 文件时,什么都没有发生。

我希望以前有人做过类似的事情,我可以在这里找到帮助,因为我已经失去了理智。

【问题讨论】:

  • 为什么不将 wxPython 用于您的 GUI?然后将不涉及 C++ 可执行文件。并且会有足够简单的转换。
  • 我的程序快完成了。所以我不得不说我不想重建整个应用程序来使用wxPython。不幸的是,我之前没有检查过,但如果有人可以提供帮助,我宁愿继续使用当前系统。

标签: python c++ wxwidgets python-c-api


【解决方案1】:

根据https://pyinstaller.readthedocs.io/en/stable/usage.html,您应该使用--add-binary 而不是--add-data

【讨论】:

  • 不幸的是,它没有帮助。我检查的是:pyinstaller myPythonFile.py --add-binary 'myVisualGeneratedFile.exe;.' --onefile --clean 但同样,单击 exe 文件并没有任何反应。我想知道 .spec 文件应该是什么样子。也许我应该添加一些额外的 lib 文件。但我不知道是哪些文件。
  • @MikeTusky,您使用的是 wx 的静态还是 DLL 构建?如果是后者 - 您还应该添加二进制文件所依赖的所有 wx 库...
  • 我想我有静态构建,只有 .lib 文件。现在我试图简化它,我创建了简单的 c++ 文件,它只打印出一些单词,然后执行 python 文件(打印你好世界),最后再次打印出一些单词。在我从视觉中获取 exe 文件后,我再次尝试了“pyinstaller ...”命令。我实现的是一个单一的 exe,点击它后会给我“hello world”。看起来它完全忽略了带有 c++ 代码的 exe。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-07-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-25
相关资源
最近更新 更多