问题标签 [python-embedding]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1356 浏览

python - 满足我的应用程序脚本需求的最小 Python 构建?

对于为我的应用程序的脚本需求构建一个非常简约的 Python(2.x) 版本,您有什么建议。

我在这里的主要动机是尽可能降低占用空间(内存和磁盘方面),这样我的本机应用程序就不会受到任何重大的性能影响。甚至 Python DLL 的大小也在考虑之中,因为可能会增加我的应用程序的启动时间。

我们可以像Lua或其他轻量级解决方案一样低吗?

0 投票
6 回答
3500 浏览

c++ - Python 解释器作为 c++ 类

我正在将 python 嵌入到 C++ 中。在某些特殊情况下,我需要在同一个线程中使用两个单独的解释器实例。

我可以将 Python 解释器包装到 c++ 类中并从两个或多个类实例中获取服务吗?

0 投票
1 回答
3519 浏览

python - 将python嵌入到os x上的matlab mex文件中

我正在尝试将 Python 嵌入到 OS X 上的 MATLAB mex 函数中。我已经看到可以做到这一点的参考资料(例如这里),但我找不到任何 OS X 特定信息。到目前为止,我可以成功构建一个嵌入式 Python(所以我的链接器标志必须没问题),我还可以毫无问题地使用默认选项构建示例 mex 文件:

但是当我尝试构建一个嵌入 Python 的 mex 文件时,我遇到了未定义符号 main 的问题。这是我的 mex 函数:

以下是 mex 编译步骤:

我尝试过使用 arch 设置(我添加了 -arch i386 以尝试将所有内容保持为 32 位 - 我正在使用 python.org 32 位 2.5 构建)和链接器标志的顺序,但还没有去任何地方。网上也找不到很多。有人对我如何构建它有任何想法吗?

[编辑:可能应该添加我在 OS X 10.6.1 和 MATLAB 7.8 (r2009a)、Python 2.5.4 (python.org) - 我已经尝试过 gcc-4.0 和 gcc-4.2 (apple)]

0 投票
5 回答
695 浏览

python - 扩展 Python:预加载我的 C 模块

我正在尝试通过我编写的一些 C 函数来扩展 Python 解释器。从阅读文档到公开这些功能,用户必须导入包含这些功能的模块。

是否可以通过 C API 加载预加载或预导入模块,以便用户不必键入import <mymodule>?甚至更好,from <mymodule> import <function>

编辑:我可以在 Py_Initialize(); 之后执行 PyRun_SimpleString("from mymodule import myfunction"); - 我只是想知道是否有另一种方法可以做到这一点..?

编辑 2:换句话说,我有一个用 C 编写的应用程序,它嵌入了一个 Python 解释器。该应用程序提供了一些我想向用户公开的功能,以便他们可以为该应用程序编写简单的 Python 脚本。我想要的只是消除编写的需要from mymodule import myfunction1, myfunction2,因为它是非常专业的应用程序,而且脚本在没有应用程序的情况下无论如何都无法工作,因此一直要求是没有意义import ...的。

0 投票
3 回答
659 浏览

python - 限制嵌入式 python 实例的功能

有没有办法限制在嵌入式解释器下运行的 python 脚本的能力?具体来说,我希望阻止脚本执行以下操作:

  • 导入 python 扩展模块(即 .pyd 模块),应用程序特别允许的除外。
  • 以任何方式操作进程(即启动新进程或终止应用程序)。
  • 任何类型的网络。
  • 操作文件系统(例如创建、修改和删除文件)。
0 投票
1 回答
245 浏览

python - 正在寻找一种更智能的方式将 Python 列表转换为 GList?

我对 C -> Python 交互真的很陌生,目前正在用 C 编写一个小应用程序,它将读取一个文件(使用 Python 解析它),然后使用解析的信息来执行小的 Python 片段。目前我感觉很像是在重新发明轮子,例如这个函数:

我真的很想以一种更容易/更智能的方式做到这一点,不太容易出现内存泄漏和错误。

感谢所有意见和建议。

0 投票
1 回答
1655 浏览

ironpython - 在 WinForms 应用程序中嵌入 IronPython 并中断执行

背景

我的问题

  • 用户将需要中断其代码的执行
  • 换句话说,他们需要能够在从 cmdline 运行 Python 或 IronPython 时按 CTRL-C 来停止执行
  • 我想在 winform 中添加一个按钮,按下该按钮会停止执行,但我不确定如何执行此操作。

我的问题

  • 我怎样才能做到按下“停止”按钮实际上会停止使用输入的 IronPython 代码的执行?

笔记

  • 注意:我不想简单地丢弃那个“会话”——我仍然希望用户能够与会话交互并访问在它停止之前可用的任何结果。
  • 我假设我需要在单独的线程中执行此操作,任何正确执行此操作的指导或示例代码将不胜感激。
0 投票
1 回答
7997 浏览

python - 从 C/C++ 程序调用的多个操作系统线程上的多个独立嵌入式 Python 解释器

在 C/C++ 应用程序中嵌入 Python 解释器是有据可查的。在从 C/C++ 应用程序调用的多个操作系统线程(即同一进程内的一个操作系统线程上的一个解释器)上运行多个 python 解释器的最佳方法是什么?此类应用程序还可能存在与内存碎片和Py_Finalize() 限制相关的问题。

一种这样的方法可以是:

  1. Python 线程,因此 GIL 在 pyconfig.h 中被禁用以保持简单(#undef WITH_THREAD)
  2. Python 解释器源代码的所有可变全局变量都移动到通过线程本地存储引用的堆分配结构(参考:电话上的 Python)。

我的问题是:

  1. 有没有更好的方法?
  2. 是否有任何工具可以自动将 Python Interpreter 源代码的全局变量转换为通过 TLS(线程本地存储)引用的堆分配结构?

这里讨论了类似的主题:

0 投票
2 回答
140 浏览

dynamic-binding - 如何在使用嵌入式 Python 执行期间解析绑定?

我将 Python 嵌入到 C++ 应用程序中。我打算用它PyEval_EvalCode来执行 Python 代码,但我没有提供本地全局作为字典,而是在寻找一种让我的程序动态解析符号引用的方法。

例如,假设我的 Python 代码包含以下表达式:

我希望 Python 解释器回调我的程序并请求这些命名对象,而不是将bear,lionbunny它们的关联对象放入我传递给的字典中。PyEval_EvalCode

有没有办法做到这一点?

0 投票
10 回答
92974 浏览

c++ - 从 C/C++ 调用 python 方法,并提取其返回值

我想从 C 调用一个在 Python 模块中定义的自定义函数。我有一些初步代码可以做到这一点,但它只是将输出打印到标准输出。

我的测试.py

测试.cpp

如何将返回值提取到 Cdouble中并在 C 中使用它?