c语言的pyx文件什么作用,pyx文件 生成pyd 文件用于 cython调用的实现
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”,运行。
补充:python无法导入Cython的.pyx文件?
解决方法:
在import相应包之前,添加:
import pyximport
pyximport.install()
如果上面安装完成后运行程序又出现
No module named pyximport
此时需要:
pip install Cython
即可~
以上为个人经验,希望能给大家一个参考,也希望大家多多支持呐喊教程。如有错误或未考虑完全的地方,望不吝赐教。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:notice#nhooo.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。
c语言的pyx文件什么作用,pyx文件 生成pyd 文件用于 cython调用的实现相关推荐
- python导入pyx文件_pyx文件 生成pyd 文件用于 cython调用
转于:https://www.2cto.com/kf/201405/304168.html 1. 初衷 最近学用python,python不愧是为程序员考虑的编程语言,写起来很快很方便,大大节省开发效 ...
- python导入pyx文件出错,pyx文件 生成pyd 文件用于 cython调用的实现
pyx文件是python的c扩展文件,代码要符合cython的规范,用什么编辑器写都行.我在eric4上写的,结果它默认用python解释器来进行解释,还提示有bug,"语法错误" ...
- python调用pyd_Python生成pyd文件
Python的脚本文件是开源的,量化策略的安全性没有保障.因此需要保护源码.那么要对Python代码进行混淆.加密保护. 混淆代码,我准备使用pyminifier.而加密处理,就比较麻烦. Pytho ...
- python import文件pyd_Python生成pyd文件
Python的脚本文件是开源的,量化策略的安全性没有保障.因此需要保护源码.那么要对Python代码进行混淆.加密保护. 混淆代码,我准备使用pyminifier.而加密处理,就比较麻烦. Pytho ...
- python的pyd文件_Python 加密之 生成pyd文件
混淆代码,我准备使用pyminifier.而加密处理,就比较麻烦. Python有py.pyc.pyw.pyo.pyd等文件格式. 其中,pyc是二进制文件.但很容易被反编译. pyw也不行,只是隐藏 ...
- linux 进程间通信 dbus-glib【实例】详解四(上) C库 dbus-glib 使用(附代码)(编写接口描述文件.xml,dbus-binding-tool工具生成绑定文件)(列集散集函数)
linux 进程间通信 dbus-glib[实例]详解一(附代码)(d-feet工具使用) linux 进程间通信 dbus-glib[实例]详解二(上) 消息和消息总线(附代码) linux 进程间 ...
- asciidoc html java_如何使用AsciiDoclet从.java文件中的javadoc注释生成asciidoc文件
我是asciidoc的新手.我想在 java文件中从注释的 javadoc(asciidoc格式)生成HTML文档. 例如java文件 /** * = Asciidoclet * * Sample c ...
- Python的py文件生成pyd文件
使用 py2exe 打包 Python 程序 Python的py文件生成pyd文件 源代码: git@gitee.com:menglingzhi/cython_test.git 另外python打包w ...
- 使用python代码,将csv文件中的问题逐条向ChatGPT提问,并将ChatGPT回复的结果新建为一个文件保存,文件名为所提出的问题,最后所有生成的word文件都保存在一个新生成的文件夹中。
你可以使用 Python 的 csv 模块来读取 csv 文件,然后使用 ChatGPT 的 API 来获取回答.下面是一个例子,它假设你已经安装了 ChatGPT 并已经准备好了 csv 文件. i ...
最新文章
- AliCloudDB for redis应用场景之存储最新N条聊天记录
- Java Web整合开发(10) -- 资源国际化
- ×××(虚拟专用网)服务实验介绍
- NumPy-快速处理数据
- Objective-C中的hasPrefix
- build/envsetup.sh脚本分析
- c语言形参的隐含存储类型,C存储类型
- torchvision0.2.2_速度全面碾压,PCIE4.0 M.2对撞PCIE3.0 M.2
- Stock Arbitraging
- P2839 [国家集训队]middle
- Lambda表达式练习1【应用】
- pacificA架构介绍
- 线程与线程池(一条龙详解)
- python软件_Python软件的下载与安装
- 玩生死狙击找不到服务器怎么办,生死狙击手游进不了游戏解决方法 生死狙击手游进游戏诀窍...
- php获取cookie值的方法,怎么获取cookie的值
- 拔掉MacBookPro,用8GB树莓派4工作一天,体验原来是这样的
- ubuntu 下应用 Python 和 SL4A 的 Android 应用程序搭建您自己的android研发环境
- 12个免费logo生成器
- Linux下线程池源码实现