Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我有一个包含许多有用子例程的 fortran 文件,我想使用 f2py 为其创建一个 Python 接口。
出现问题的原因是某些 fortran 子例程从 NAG 库(名为 c06ebf)调用 FFT 子例程。当导入 Python 时,它会产生“未定义符号:co6ebf”警告。
有没有其他方法可以在我的 Fortran 子例程中执行 FFT 并能够使用 f2py 从它创建 Python 接口?
这个问题通过以下方式解决:
调用商业 FFT 库的所有实例都被调用免费 FFT 库(在本例中为 FFTW3)所取代。当然,如果需要,'include "fftw3.f"' 会放在 fortran 子例程的顶部。
扩展模块是使用 f2py 创建的。第一行创建签名文件,第二行编译扩展模块。请注意,我们在此过程中链接了外部库 - 以前没有这样做,这导致了陈述的问题。
f2py -m splib -h splib.fpy splib.f f2py -c splib splib.f -lfftw3