【问题标题】:C++ Python embedding: Run on machine with no Python?C++ Python 嵌入:在没有 Python 的机器上运行?
【发布时间】:2011-06-27 02:10:21
【问题描述】:

我正在尝试制作一个支持 Python 脚本的小游戏。我使用 Python C-API 没有问题,但我不知道如何确保游戏能够在没有安装 Python 的计算机上运行。

我知道我需要 pythonXY.dll -- 还有什么?当我尝试运行该程序时,它告诉我找不到 encodings.utf_8。我尝试将 encodings/utf_8.py 文件复制到与我的程序相同的目录下,但仍然弹出错误。

【问题讨论】:

  • 你最好包括所有的标准库。好吧,也许不是全部,但以将为您编写游戏脚本的人的名义,我请求您:至少包括那些完全无害但非常有用的模块,例如 collectionsre

标签: python embed python-c-api


【解决方案1】:

您需要encodings/__init__.py 文件,否则 encodings 是一个文件夹而不是 python 包。

您可能需要 python 标准库中的大量内容。为了使一切正常工作,您需要将整个标准库与您的程序一起包含在内。

您可以通过将库放在一个 zip 文件中并将其添加到 sys.path 中来改善这一点。此外,您只能包含 pyc 而不是原始 py 文件。

【讨论】:

  • 有什么“干净”的方法吗?比如可能在.exe中嵌入所有必要的组件?如果大小没有增长太多,这实际上可能是最好的方法。
  • @Paul,这可能但并不容易。我真的看不出这样做有什么好处。
猜你喜欢
  • 2011-05-16
  • 2011-06-21
  • 2017-04-03
  • 1970-01-01
  • 1970-01-01
  • 2019-01-23
  • 1970-01-01
  • 2021-07-24
  • 2021-07-20
相关资源
最近更新 更多