《python高性能》学习笔记--- 第3章 第4章

第三章讲 用NumPy和pandas执行数组操作,这方面的教程网上很多。

第四章讲 使用Cpython获得C语言性能

Cpython 能够将Python 脚本编译成高效的C语言代码。在不做任何修改的情况下Cpython就能编译大部分python模块。

请新建一个名为hello.pyx的文件,并在其中输入如下代码。
def hello():
  print('Hello, World!')
下面的cython命令读取文件hello.pyx,并生成文件hello.c。
$ cython hello.pyx
为将hello.c编译成Python扩展模块,我们将使用编译器GCC。我们需要添加一些Python专用的编译选项,这些选项因操作系统而异。必须指定包含头文件的目录,在下面的示例中,这个目录为/usr/include/python3.5/。
$ gcc -shared -pthread -fPIC -fwrapv -O2 -Wall -fno-strict-aliasing -lm -
I/usr/include/python3.5/ -o hello.so hello.c
 要获悉Python的包含(include)目录,可使用distutils工具sysconfig.get_python_inc。要执行这个工具,只需执行命令python -c "from distutils import sysconfig; print(sysconfig.get_python_inc())"即可。
这将生成一个名为hello.so的文件,一个可直接在Python会话中导入的C语言扩展模块。
>>> import hello
>>> hello.hello()
Hello, World!
Cython支持将Python 2和Python 3作为输入和输出语言,换而言之,要编译Python 3脚本文件hello.pyx,可使用选项-3。
$ cython -3 hello.pyx
对于生成的hello.c,无须做任何修改就可将其编译为Python 2或Python 3扩展模块,为此只需使用选项-I指定相应的头文件即可,如下所示。


$ gcc -I/usr/include/python3.5 # ... other options
$ gcc -I/usr/include/python2.7 # ... other options

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值