Python 3中Weave的替代方案

时间:2018-01-24 14:07:57

标签: python-3.x scipy

我想在Python 2中找到另一种编织方法,因为Python 3中不再提供编织。

更具体地说,我需要另一种写作方式:

from scipy import weave
from scipy.weave import converters

code = """ C-code1 """
support_code = """ C-code2 """
weave.inline(code, ['a', 'b', 'c'], support_code=support_code, type_converters=converters.blitz, compiler='gcc', verbose=0)

2 个答案:

答案 0 :(得分:1)

您可以使用编织开发人员here推荐的Cython库。它使用起来有点复杂,但也提高了代码的性能。您可以找到一些示例here

另一种选择可以是Numba。它更加用户友好,但不会缓存已编译的代码。

答案 1 :(得分:1)

看看numba。有可能,您可以将所有代码库迁移到普通的python中,并且仍然保持与C代码相同的速度。你甚至可以从你的内循环中获得一些功能,例如抛出明显的python错误,据我所知,编织时不容易。举个例子,你可以检查{numba的benchmarks enter image description here,它提供了与编织一样的numba实现。如果你摆脱了一次C代码,你将永远不会回头。