pyx文件 生成pyd 文件用于 cython调用
来源:互联网 发布:感情洁癖 知乎 编辑:程序博客网 时间:2024/06/03 21:50
参考: http://www.2cto.com/kf/201405/304168.html
参考: http://blog.csdn.net/darren2015zdc/article/details/54574868
pyx文件是python的c扩展文件,代码要符合cython的规范,用什么编辑器写都行。我在eric4上写的,结果它默认用python解释器来进行解释,还提示有bug,“语法错误”。
上面的pyx文件还仅仅是源代码文件,要想被python调用、要想运行,仅仅写了源代码还是不够的。具体来说,还要转成.c或者.c++的文件,并且再进一步转成.pyd文件。pyd文件才是可以直接使用的文件。为了达到上述目的,就要写一个setup.py脚本,如下:
#!/usr/bin/python#python version: 2.7.3#Filename: SetupTestOMP.py # Run as: # python setup.py build_ext --inplace import sys sys.path.insert(0, "..") from distutils.core import setup from distutils.extension import Extension from Cython.Build import cythonize from Cython.Distutils import build_ext # ext_module = cythonize("TestOMP.pyx") ext_module = Extension( "TestOMP", ["TestOMP.pyx"], extra_compile_args=["/openmp"], extra_link_args=["/openmp"], ) setup( cmdclass = {'build_ext': build_ext}, ext_modules = [ext_module], )这个完全是一个python脚本,可以在python解释器下面运行。在控制台下,运行如下命令‘python setup.py build_ext --inplace’,就生成了TestOMP.pyd文件。当然,同时还有一些杂七杂八的文件,如‘build’目录下面的‘lib’文件。这都提示着,这是在windows vistual studio环境下。在linux+gcc环境下,就要生成.so文件了,而且“/openmp”的选项就要写成“-fopenmp”
写TestOMP.py
文件上述两个步骤,相当于把某个python效率瓶颈模块(这之前需要用profile工具来定位)用效率更高的代码写成了python的c扩展形式,接下来,就是要在python代码中调用他们。TestOMP.py就是这个调用的脚本,如下:
from TestOMP import Test Test()这个就很容易了,import并且调用。在控制台下,输入“python TestOMP.py”,运行。
0 0
- pyx文件 生成pyd 文件用于 cython调用
- pyx文件 生成pyd 文件用于 cython调用
- 【Cython】Cython包装C文件
- python 文件 .py .pyc .pyw .pyo .pyd
- python py、pyc、pyo、pyd文件区别
- 生成hdf5文件用于多标签训练
- 生成hdf5文件用于多标签训练
- 生成hdf5文件用于多标签训练
- 生成hdf5文件用于多标签训练
- iOS-生成CSR文件(用于创建证书)
- [gevent源码分析] libev cython绑定core.pyx
- 使用C++创建Pyd文件扩展Python模块
- python的py、pyc、pyo、pyd文件区别
- gsoap:编写用于soapcpp2.exe生成文件的头文件
- 用于生成DLL文件的def文件的规范写法
- 生成dll文件与调用
- 使用cython将py文件编译成so文件
- 使用cython将py文件编译成so文件
- 有效的方法解决mac误删/usr/bin
- LEETCODE--Max Consecutive Ones
- 视图的详细介绍
- 2017-01-16号 下午 socket客户端
- Centos7 nginx修改文件夹后 is forbidden (13: Permission denied)
- pyx文件 生成pyd 文件用于 cython调用
- 服务器
- html——列表标签
- Dredd笔记
- Java基础之基本数据类型转换
- 【Java】Java-version报错error:could not open'...jvm.cfg'
- java设计模式——装饰模式
- 浅谈oracle中row_number() over()分析函数用法
- Mongoose初体验