python - 扩展 Python : pre-load my C module

标签 python c import python-c-api python-embedding

我正在尝试通过我编写的几个 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 ... 是没有意义的。一直。

最佳答案

即使您用 Python 实现了一个模块,用户也必须导入它。这就是 Python 的工作方式,它实际上是一件好事 - 它是 Python 的一大优点 - namespace /模块系统健壮、易于使用且易于理解。

仅对于学术练习,您当然可以通过创建自定义解释器将新功能添加到 Python 本身。您甚至可以通过这种方式创建新的关键字。但出于任何实际目的,不建议这样做。

关于python - 扩展 Python : pre-load my C module,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1963453/

相关文章:

c++ - 为什么没有返回语句时没有任何编译器错误?

c - c 中的 isdigit 函数我的代码有什么问题?

typescript - 无法在 Typescript 中导出常量

mysql - 如何加快数据加载到 InnoDB (LOAD DATA INFILE)?

python - 如何将单元格中的值转换为 Pandas 中的新列?

python - 在 LINUX Redhat 服务器上本地部署基于 Python Flask 的 REST API

Python (tkinter) 错误 : "CRC check failed"

python - 在 R 和 pandas 中合并并保持顺序

C# ListBox 从文本文件导入时崩溃

c - 查找矩阵中唯一路径的数量