我正在使用 pythran 将我的 python+numpy 代码转换为 C++,到目前为止,一切都非常有效,生成的代码非常有效。但是,我的代码需要使用 numpy.ffr.rfft 和 irfft(快速傅里叶变换),pythran 显然不支持:
import numpy as np
# pythran export testFunc(float[])
def testFunc(signal):
X = np.fft.rfft(signal,n=1024)
>pythran Foo.py
CRITICAL I am in trouble. Your input file does not seem to match
Pythran's constraints...
E: Attribute 'fft' unknown (Foo.py, line 5)
我怎么可能做到这一点?如果我从 python 代码中调用快速傅立叶变换的 C 实现(我知道这可以做到),pythran 会使用它还是会抱怨它?
编辑:我将一个简单的 C 函数编译成一个 so 模块,然后我可以从我的 python 代码中调用它。当从 python 调用时,所有这些都可以正常工作,但是 pythran 在导入时不起作用:
CRITICAL I've got a bad feeling about this...
E: source code not available
所以看起来 pythran 不适用于已编译的 .so 文件。