我可以通过普通的Python脚本使用Cython编译吗?
Cython 有时候可以显著减少计算时间,因为它会把代码转换成 C 语言来运行。有没有办法通过普通的脚本来使用 Cython,像用某个 import 函数那样?
我下载了 Python(x y),但我甚至不太确定使用 Python 的“最佳”方式是什么,是用 iPython notebook 还是 Spyder 等等……?
我还有哪些其他选择呢?
1 个回答
4
你可以把你的cython代码写在一个以.pyx为后缀的文件里。
然后使用pyximport来编译这个文件,方法是添加类似下面的内容:
`import pyximport;
pyximport.install()`
from foo import foo # finds foo.pyx automatically
它会检测cython文件的变化,如果有必要就重新编译,否则就加载之前缓存的模块。
下面是一个简单的例子,假设我在和我的fib.pyx
文件在同一个目录下用ipython运行:
我的fib.pyx
文件内容如下:
def cython_fib(int n):
cdef long i,a, b
a,b = 0,1
for i in xrange(n):
a,b = b,a + b
return a
然后我导入pyximport等其他内容。
In [1]: import pyximport
In [2]: pyximport.install()
Out[2]: (None, <pyximport.pyximport.PyxImporter at 0x7f0139916e10>)
In [3]: from fib import cython_fib # import like a normal python import
In [4]: cython_fib(20)
Out[4]: 6765