$ cat calc_pi.pyx
# cython: profile=True
# cython: language_level=3
# cython linetrace=True
# calc_pi.pyx
cimport cython
@cython.profile(False)
def recip_square(int i):
return 1. / i ** 2
def approx_pi(int n=10000000):
cdef double val = 0.
cdef int k
for k in range(1, n + 1):
val += recip_square(k)
return (6 * val) ** .5
$ cat runme.py
import calc_pi
import argparse
def main():
parser = argparse.ArgumentParser(prog='{0}'.format(__file__))
parser.add_argument("-i", "--index", help="specify number", type=int)
args = parser.parse_args()
num = int(args.index)
print(calc_pi.approx_pi(num))
if __name__ == "__main__":
main()
问题>我已经看到了如何分析单个cython功能,例如calc_pi.approx_pi
。但是,我在通过调用python脚本来分析这些功能时遇到问题。
例如,假设您无法直接分析功能calc_pi.approx_pi
,因为您需要从python脚本(即runme.py
)进行一些参数/预处理。
有没有一种方法可以通过调用calc_pi.approx_pi
来分析runme.py
?
谢谢