python - 有没有办法通过 zipimport 使用已编译的 C 模块?

标签 python linux google-app-engine cpython

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

import _ctypes

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

但是,如果我使用名为 tmp.zip 的 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 沙箱,因为即使在正常环境下也无法完成。

关于python - 有没有办法通过 zipimport 使用已编译的 C 模块?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38775427/

相关文章:

google-app-engine - 如何找到我的 google appengine 服务帐户的 ClientID?

java - 优化 Multi-Tenancy 应用程序中的 GAE/J 备份和恢复

mysql - 错误 1045 (28000) 访问被拒绝 cloudSQL

python - 如何在python 2.7中逐行从pdf中提取文本

python - 如何以表格形式显示值,因为现在只显示表格标题

linux - 从 Linux 服务器向 Google Cloud Platform 进行身份验证

mysql - 当查询结果返回不匹配时需要显示替代文本

Linux,检查当前没有正在运行的 cron 作业的代码?

python - 使用beautifulsoup获取youtube视频的信息

python - 每次执行方法后暂停