模块加载如何在CPython下工作?特别是,用C编写的扩展的动态加载如何工作?我在哪里可以了解到这一点?
我发现源代码本身相当压倒性.我可以看到,可靠的ol' dlopen()
和朋友用在支持它的系统上但没有任何大局观,从源代码中解决这个问题需要很长时间.
关于这个主题可以写很多,但据我所知,几乎没有任何内容 - 描述Python语言本身的大量网页使搜索变得困难.一个很好的答案将提供一个相当简短的概述和参考资源,我可以了解更多.
我最关心的是它是如何在类Unix系统上运行的,因为这就是我所知道的但我感兴趣的是如果这个过程在其他地方类似.
为了更具体(但风险假设太多),CPython如何使用模块方法表和初始化函数来"理解"动态加载的C?