有没有办法将已编译的 C 模块与 zipimport 一起使用?

Is there a way to use compiled C modules with zipimport?

当我的 sys.path 中有 python 共享对象文件 (.so) 时,我可以简单地执行:

import _ctypes

并且它将导入 python2.7/lib-dynload/_ctypes.so

但是,如果我使用名为 tmp.zip 的压缩文件,其中包含:

Hello/_World.so

world.so 包含格式正确的 init_World 函数,然后:

Python 2.7.10 (default, Jun  1 2015, 18:05:38)
[GCC 4.9.2] on cygwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> sys.path.insert(0, 'tmp.zip')
>>> import _World
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
zipimport.ZipImportError: can't find module _World

我读到在 C 中无法加载文件系统外的共享对象文件。
这是否意味着我想要实现的目标是不可能的,并且 _World.so 应该从存档中提取?

我只对直接使用 zipimport 感兴趣。我知道还有其他方法可以做到这一点,比如手动提取存档并创建文件。

看来我在完整阅读文本方面确实存在很大问题:

This module adds the ability to import Python modules (*.py, *.py[co]) and packages from ZIP-format archives..

所以答案很明确,我正在努力实现不可能的事情......没有办法用它来逃脱 python 沙箱,因为即使在正常环境下也无法完成。