代码之家  ›  专栏  ›  技术社区  ›  Begtostudy

我可以带一包塞顿吗?

  •  2
  • Begtostudy  · 技术社区  · 14 年前

    我用cPython API从C/C++中加载Py。

    但是,如果我不想在客户机中设置cpython,我可以在我的程序中获取cpython的包dll吗?

    如何做到这一点?

    3 回复  |  直到 14 年前
        1
  •  1
  •   Alex Martelli    14 年前

    安装施工人员 PyInstaller (跨平台)和 py2exe (仅限Windows)基本上以一种通用的方式为您完成这项工作,只是所生成包的核心部分的可执行文件是它们自己的,而不是您的。

    但基本上,你可以模仿他们的行为,建立一个 .zip 用您需要的所有python库模块归档(或者,如果您想让运行在应用程序中的python代码从中导入任何内容,只需压缩标准python库中的所有模块),然后按照 Embedding Python in Another Application python文档的部分。

    请注意,嵌入python等于扩展python,再加上一些代码来初始化和完成解释器本身,以及一些我刚才提到的打包;如果您从未编写过python扩展,我建议您先练习一下,因为它是任务中最重要的部分(并不是所有的帮助程序都很困难,例如 boost python ,但如果您选择将其作为“裸C”级别来执行,则需要做更多的工作)。

        2
  •  1
  •   Community pid    7 年前

    您不需要设置python来将其嵌入到应用程序中。Python解释器的核心是作为一个共享库提供的,您可以在应用程序中动态加载并与它一起分发。

    继续阅读 embedding Python 在官方文件中。也, this article 对于Linux来说,它看起来很好,也很全面。对于Windows, read the notes here .

    这里是 another SO question 讨论这个问题。

        3
  •  0
  •   msw    14 年前

    对于一个非律师、非英语母语的人来说,python许可证可能很难理解。所以是的,您可以重新分配未修改的dll,因为它包含其中的版权声明。

    “这个程序包含了python语言解释器版本x.x x”,这是很礼貌的。 http://python.org 获取更多信息”或程序或文档中的类似内容。