Python可执行拉链与C扩展

问题描述:

我有一个__main__.py一个zip文件执行罚款:./myappPython可执行拉链与C扩展

但这拉链里面,有一个C扩展library.so文件必须加载,但这个库.so文件未找到。

如果我执行目录(没有压缩它),它会正确执行。所以看起来C扩展不受支持或者是一些配置问题。有任何想法吗?

http://www.python.org/dev/peps/pep-0441/

+0

在Google中很难找到的一个非常简单的问题对于StackOverFlow来说应该是完美的。人们无缘无故地停止低价投票会很好。这样做后至少给一些有用的评论。 – 2013-05-15 17:57:34

C扩展不能从.zip库加载。这是Python控制之外的限制。

这已经应用到zipimport support

任何文件可能存在于ZIP压缩文件,但只有文件的.py和的.py [合作]可供导入。动态模块(.pyd,.so)的ZIP导入是不允许的。

+1

你知道这是否有任何解决方法吗?我正在考虑将.SO文件放在特定的目录中,然后尝试使用pkg_resources加载它们。 – 2013-05-01 18:46:56

+0

你将不得不把它们放在一个单独的目录中,它被添加到'sys.path'中。也许你可以在'__main__'模块运行时将它们提取到临时目录中? – 2013-05-01 22:23:43