Python Cython如何处理进口商品?

Python Cython如何处理进口商品?,python,c,cython,python-module,python-extensions,Python,C,Cython,Python Module,Python Extensions,我想创建一个Python扩展,我非常喜欢使用Cython的想法。主要是为了获得更多关于它的知识,并利用速度增益(如果有的话)。我已经阅读了相当多的Cython文档,但我不是一名计算机科学家(尚未),也没有深入了解底层基础知识,因此我提出以下问题的原因: 我只是想知道,如果我在开发的Python扩展中使用外部导入的(例如,ORM或SQL库或任何其他第三方库),会发生什么情况? Cython是如何处理的? 如果这个导入的库/扩展是纯Python的,或者也是编译的,会有区别吗? 正确的处理方法是什么

我想创建一个Python扩展,我非常喜欢使用Cython的想法。主要是为了获得更多关于它的知识,并利用速度增益(如果有的话)。我已经阅读了相当多的Cython文档,但我不是一名计算机科学家(尚未),也没有深入了解底层基础知识,因此我提出以下问题的原因:

我只是想知道,如果我在开发的Python扩展中使用外部导入的(例如,ORM或SQL库或任何其他第三方库),会发生什么情况?

Cython是如何处理的?

如果这个导入的库/扩展是纯Python的,或者也是编译的,会有区别吗?

正确的处理方法是什么

多谢各位


注:问题以粗体输入。

cython的目标是与python兼容,也就是说,您可以对任何python代码进行cythonize,它将像以前一样工作。目前,大部分python代码已经可以工作了。Cython还允许您优化部分代码,并将其编译成更高效的C代码

也就是说,任何python导入都将保持默认状态。对它们的任何调用都将作为python命令发出。即使模块是用C编写的,cython也会绕道python调用模块的函数。如果您想直接使用C库,就必须为它们提供cython绑定。这个

通常,python充当监督者并处理模块/类的范围。如果一个模块中的代码调用任何python函数(或访问python变量),python将根据调用方的作用域解析调用。如果调用的函数恰好位于第二个模块中,python会很高兴地使用它。调用者只会得到结果,不应该真正关心其他函数是否在不同的模块中。因此,关键在于决定调用哪个函数的python范围规则