不可能直接运行cython模块?

时间:2012-07-18 11:02:57

标签: python module cython

我有一个非常基本的cython测试脚本

test1.pyx:

def do_something(f):
    return f

def main():
    f = 1
    print do_something(f)


if __name__ == "__main__":
    main()

我编译的是:

cython test1.pyx
gcc -Wall -O2 -g -lm -shared -pthread -fPIC -fwrapv -fno-strict-aliasing -Iinclude/python2.6 -o test1.so test1.c

它有效:

./bin/python -c "import test1; test1.main()"
1

但直接将其作为模块调用不起作用:

./bin/python -m test1
/mypath/bin/python: No code object available for test1

为什么这不起作用?我怎样才能让它直接调用cython脚本?

Cython版本0.12.1

2 个答案:

答案 0 :(得分:5)

使用--embed选项。这是example

答案 1 :(得分:3)

我把runcython(http://github.com/Russell91/runcython)放在一起使这更容易。使用runcython test.pyx将直接构建并运行您的cython脚本。