问题标签 [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.
delphi - 重置 Python4Delphi 引擎?
我将 D7 与 Python4Delphi 一起使用。在用户导入大量 py 文件后,Python 会缓存所有这些模块。我需要一种方法来重置 Py 引擎。这样 Py 就会“忘记”所有用户导入的模块,并且我有“干净”的 Python,而无需重新启动应用程序。怎么做?
macos - Mavericks:将 Python 解释器编译成静态库
我想将Python 3.3解释器嵌入到Mac OS 10.9 Cocoa 应用程序中以添加一些 Python 功能。从我从另一个 StackOverflow 问答中读到的内容,最好创建一个静态库(页脚中的引用)而不是动态库。
这是我尝试从 Python 解释器创建静态库(.a 文件)的内容:
- 我已经从这里下载了 Python 3.3 (CPython) 源代码。
- 我已经
*static*
在Modules/Setup.dist
文件中添加了 - 我输入了以下内容来编译终端中的源代码:
./configure LDFLAGS="-static -static-libgcc" CPPFLAGS="-static"
我得到的结果如下:
我的理解是,gcc 实际上在 Mavericks 中被 Apple LLVM 5.0 版(clang-500.2.79)(基于 LLVM 3.3svn)所取代。
另外,我在config.log中发现了以下内容...
问题:如何使用Apple LLVM编译 Python 3.3,以便拥有一个静态库,例如libpython3.3.a?
- 参考1: 让Python在Cocoa App中工作
- 参考2: 静态编译Python解释器?
python - 嵌入 Python,在 main() 中有效,但在 WinMain() 中无效
我将 Python 3.4 嵌入到用 C++ 编写的应用程序中。当我使用 main() 进入程序时一切正常,但是当我使用 WinMain() 时它崩溃了。当在 main() 中调用 Py_Initialize 时,一切正常,但在 WinMain 中失败。我猜这与控制台不存在有关,因为 WinMain() 不会创建控制台。
谢谢!
python - 从 python float 转换为 C++ double 时的精度损失
我在我的 c++ 程序中嵌入了 python 代码。使用 PyFloat_AsDouble 会导致精度损失。它最多只能保留 6 位精度数字。我的程序对精度非常敏感。对此有已知的解决方法吗?以下是相关的 C++ 代码:
retVals[i] 的精度只有 6,而 python 代码返回的值是一个浮点数,可以有更高的精度。如何获得全精度?
python - 如何将填充的 c 结构传递给 python(没有 ctypes)
如何在不使用 ctypes 的情况下将 ac 结构传递给 python?
我有一个指向stats_res_t
我试图返回 python 的结构的指针。
我正在尝试类似的东西
但它会导致python中的段错误。
是否可以使用将填充的结构传递给 python PyObject
?
c++ - 如何在 Windows 中获取 PyErr_Print 的输出或将其保存为字符串
我正在编写嵌入式 python 解释器,有一个函数PyErr_Print()
(https://docs.python.org/3/c-api/exceptions.html)写入标准错误文本,解释为什么我调用的 C 函数失败。
这似乎不适用于 Windows,因为它从不向终端写入任何内容,有没有办法将其重定向到某个地方,或者存储为字符串以便我可以看到它?
c# - Pythonnet:如何使用嵌入式 Python 解释器?
我正在尝试使用 pythonnet 使用来自 C# 的嵌入式 python 解释器(在https://github.com/renshawbay/pythonnet找到的 python3 兼容版本)
我的解释器位于 D:\src\scratch\TestPythonNet\TestPythonNet\PythonRuntime 并具有来自 python 发行版的“Lib”和“Libs”文件夹。
我已经使用以下代码进行了测试:
但是,它不起作用。我得到一个“SystemError:PyEvalCodeEx:NULL globals”。每次我尝试从 python 获取对象时,代码都会失败。
我究竟做错了什么?
python - Python C api遍历模块中的类
在这种情况下,模块是从文件加载的 python 脚本。我在互联网上找不到任何关于此的信息。
如果我可以遍历模块中的所有对象,我可以使用 PyClass_Check 过滤类。但我也不知道该怎么做。
这样做的原因是用户将使用从基类派生的类来定义游戏内容。
我曾尝试在模块上使用 PyObject_GetIter() ,但它返回 NULL (显然不能以这种方式迭代。)
python - 如何在多平台 C++ 框架 (JUCE) 中嵌入 Python?
我正在使用 JUCE 设计音乐训练游戏——一个多平台 C++ 框架,它允许我编写接近线路的音频/视频。
然而,我已经用 Python 编写了我的游戏玩法(控制流/数据处理)——它很复杂,我希望不断改变它,以便我可以尝试不同的游戏玩法。Python 非常适合这种快速原型设计工作。
所以我希望我的(平台独立,所以 Win/OSX/Lin/iOS/And)C++ 启动 Python 运行时,为其提供一个 .py 文件,然后在该 .py 中调用各种函数。此外,我希望能够从 .py 回调 C++ 代码。
这是相关的官方 Python 文档:https ://docs.python.org/2/extending/extending.html
这是一篇 CodeProject 文章: http: //www.codeproject.com/Articles/11805/Embedding-Python-in-CC-Part-I
但是,它们似乎都没有解决多平台问题。
该技术似乎是与库 libpython.a 和#include 链接,其中包含用于启动运行时环境、加载脚本、执行 python 代码等的各种功能。
但是这个 libpython.a 肯定需要每个平台单独编译吗?如果是这样,这将不是一个非常干净的解决方案,那么我是否可以将 Python 源代码添加到我的项目中并让它编译 .a?
我该怎么做呢?
编辑:https ://wiki.python.org/moin/boost.python/EmbeddingPython
EDIT2:我很确定在这里尝试引入完整的 CPython 源代码是矫枉过正——一定有人在不支持任何系统调用/多线程/花哨的东西的 C/C++ 中做了一些精简的 Python 实现—— - 仅通过 Python 语法逐行工作。通过https://wiki.python.org/moin/PythonImplementations查看,但我看不到明显的候选人。
EDIT3:https://github.com/micropython/micropython应该添加到最后一页,但它看起来仍然不是我所追求的
python - 将 python 嵌入到 C++ 中无法按预期工作
我将 Python 嵌入到 C++ 应用程序中。
当我运行以下 C++ 代码时,它会返回时间戳,它工作正常。
现在我想得到sys.path
. 但是类似的代码给我带来了错误:
我想问题是这time.time()
是一个函数调用,而sys.path
它是一个变量。如果是这样的话:
- 如何获得变量的结果?
- 如何正确地将结果(在本例中为 a
list
)转换为 C++ 中有意义的内容,例如字符串数组?
如果没有,如何进行?我正在使用 Python 2.7.6
谢谢。