【问题标题】:How can I pack python into my project? [closed]如何将 python 打包到我的项目中? [关闭]
【发布时间】:2019-01-15 06:15:05
【问题描述】:

我正在制作一个调用 python 的程序。我想在我的项目中添加python,这样用户就不必为了使用它而下载python,而且最好使用我的程序具有的python,这样用户就不必下载任何依赖项。

我的程序将使用 C++(但可以是任何语言)编写,我想我必须调用与我的项目相同路径的 python?

假设用户正在运行的系统已经有python并且他/她调用'pip'我希望程序调用python提供的pip给我的程序并将其安装在程序目录而不是系统的python?

这可能吗?如果是我该怎么办?

真实例子: 有些程序提供了一个终端,您可以在其中执行 python 在程序中执行以下操作:

  • Autodesk 的 Maya
  • 铸造厂的核弹
  • Houdini 的副作用

注意:必须是跨平台解决方案

【问题讨论】:

  • 我看到很多用户抱怨你的程序抢了他们的点子。

标签: python pythonpath python-packaging python-config


【解决方案1】:

有些程序会“冻结”你的 Python 程序,包括 Python 本身,例如 Pyinstaller (http://www.pyinstaller.org/)

但它对第三段中的要求没有帮助,因为您必须将 Python 本身作为完整下载的一部分包含在内,这似乎没有必要。

【讨论】:

    【解决方案2】:

    为了运行python代码,运行时就足够了。在 Windows 下,您可以使用 py2exe 将程序代码与 python 运行时和所有隐性依赖项打包在一起。但是pip不能用,也没意义,不想开发,只用python部分。

    要像 Panda3D 那样分发完整的 python 安装,您必须将其包含在所选的安装程序软件中。

    【讨论】:

    • @Michel S. 我不想使用py2exe,因为它必须是跨平台的,而且它也是一个插件....那么,我应该下载python的源代码并放入同一个文件夹?
    • 这就是为什么我强调它是一个 Windows 解决方案。无论如何,解释器本身(不是字节码)是系统特定的,因此无论如何您都需要为每个相关系统提供一个解释器。在这一点上,假设本地 python 安装作为先决条件更有意义,这样可以更容易地维护。这样,您还可以解决过时软件引起的所有问题和安全问题。
    【解决方案3】:

    您可以使用py2exe 将您的python 程序转换为可执行文件。您不需要将 python 保留在可执行文件中。

    【讨论】:

      猜你喜欢
      • 2021-11-03
      • 2022-01-18
      • 1970-01-01
      • 2015-10-31
      • 1970-01-01
      • 2015-06-13
      • 2018-08-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多