我有一个 Delphi Win32 程序。我想通过 Python 模块以某种方式“公开”应用程序结构和过程。例如,模块my_api
必须为我的应用程序结构/方法公开公共项目。该模块必须仅“位于”内存中。
然后我想在同一个应用程序中调用可以导入my_api
和调用我的应用程序方法的 Python 脚本(使用 Python dll)。怎么做。
我有一个 Delphi Win32 程序。我想通过 Python 模块以某种方式“公开”应用程序结构和过程。例如,模块my_api
必须为我的应用程序结构/方法公开公共项目。该模块必须仅“位于”内存中。
然后我想在同一个应用程序中调用可以导入my_api
和调用我的应用程序方法的 Python 脚本(使用 Python dll)。怎么做。
您在这里要求两件事,这通常是一起发生的。
首先,您想要扩展Python 解释器,添加 Python 代码可以使用的类型和函数等。
其次,您希望在您的应用程序中嵌入Python 解释器,以便它可以运行 Python 脚本(可以使用您的扩展模块)。
假设您想使用 CPython(通常的 Python 解释器),教程扩展和嵌入 Python 解释器是文档的一部分。
您可能希望查看有助于使扩展方面更容易的其他选项 - 例如,您可以使用 Cython 用接近 Python 的语言而不是 C 来编写桥接代码,或者使用 Boost.Python 用漂亮的 C++ 编写它,这需要为您处理大部分样板文件,或者 SWIG 尝试自动生成它,或者ctypes
避免首先编写桥接器。但值得首先学习底层机制。
您现在可能已经听说过 Python 4 Delphi,如果您还没有,可以在此处查找。https://code.google.com/p/python4delphi/。互联网上有很多教程,例如http://www.atug.com/andypatterns/pythonDelphiTalk.htm