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调用的实现相关推荐

  1. python导入pyx文件_pyx文件 生成pyd 文件用于 cython调用

    转于:https://www.2cto.com/kf/201405/304168.html 1. 初衷 最近学用python,python不愧是为程序员考虑的编程语言,写起来很快很方便,大大节省开发效 ...

  2. python导入pyx文件出错,pyx文件 生成pyd 文件用于 cython调用的实现

    pyx文件是python的c扩展文件,代码要符合cython的规范,用什么编辑器写都行.我在eric4上写的,结果它默认用python解释器来进行解释,还提示有bug,"语法错误" ...

  3. python调用pyd_Python生成pyd文件

    Python的脚本文件是开源的,量化策略的安全性没有保障.因此需要保护源码.那么要对Python代码进行混淆.加密保护. 混淆代码,我准备使用pyminifier.而加密处理,就比较麻烦. Pytho ...

  4. python import文件pyd_Python生成pyd文件

    Python的脚本文件是开源的,量化策略的安全性没有保障.因此需要保护源码.那么要对Python代码进行混淆.加密保护. 混淆代码,我准备使用pyminifier.而加密处理,就比较麻烦. Pytho ...

  5. python的pyd文件_Python 加密之 生成pyd文件

    混淆代码,我准备使用pyminifier.而加密处理,就比较麻烦. Python有py.pyc.pyw.pyo.pyd等文件格式. 其中,pyc是二进制文件.但很容易被反编译. pyw也不行,只是隐藏 ...

  6. linux 进程间通信 dbus-glib【实例】详解四(上) C库 dbus-glib 使用(附代码)(编写接口描述文件.xml,dbus-binding-tool工具生成绑定文件)(列集散集函数)

    linux 进程间通信 dbus-glib[实例]详解一(附代码)(d-feet工具使用) linux 进程间通信 dbus-glib[实例]详解二(上) 消息和消息总线(附代码) linux 进程间 ...

  7. asciidoc html java_如何使用AsciiDoclet从.java文件中的javadoc注释生成asciidoc文件

    我是asciidoc的新手.我想在 java文件中从注释的 javadoc(asciidoc格式)生成HTML文档. 例如java文件 /** * = Asciidoclet * * Sample c ...

  8. Python的py文件生成pyd文件

    使用 py2exe 打包 Python 程序 Python的py文件生成pyd文件 源代码: git@gitee.com:menglingzhi/cython_test.git 另外python打包w ...

  9. 使用python代码,将csv文件中的问题逐条向ChatGPT提问,并将ChatGPT回复的结果新建为一个文件保存,文件名为所提出的问题,最后所有生成的word文件都保存在一个新生成的文件夹中。

    你可以使用 Python 的 csv 模块来读取 csv 文件,然后使用 ChatGPT 的 API 来获取回答.下面是一个例子,它假设你已经安装了 ChatGPT 并已经准备好了 csv 文件. i ...

最新文章

  1. AliCloudDB for redis应用场景之存储最新N条聊天记录
  2. Java Web整合开发(10) -- 资源国际化
  3. ×××(虚拟专用网)服务实验介绍
  4. NumPy-快速处理数据
  5. Objective-C中的hasPrefix
  6. build/envsetup.sh脚本分析
  7. c语言形参的隐含存储类型,C存储类型
  8. torchvision0.2.2_速度全面碾压,PCIE4.0 M.2对撞PCIE3.0 M.2
  9. Stock Arbitraging
  10. P2839 [国家集训队]middle
  11. Lambda表达式练习1【应用】
  12. pacificA架构介绍
  13. 线程与线程池(一条龙详解)
  14. python软件_Python软件的下载与安装
  15. 玩生死狙击找不到服务器怎么办,生死狙击手游进不了游戏解决方法 生死狙击手游进游戏诀窍...
  16. php获取cookie值的方法,怎么获取cookie的值
  17. 拔掉MacBookPro,用8GB树莓派4工作一天,体验原来是这样的
  18. ubuntu 下应用 Python 和 SL4A 的 Android 应用程序搭建您自己的android研发环境
  19. 12个免费logo生成器
  20. Linux下线程池源码实现

热门文章

  1. Redis配置查看及设置
  2. 根据url获取文件信息
  3. PIXIJS的用法及和canvas区别
  4. PixiJS案例——移动旋转缩放
  5. Android逆向工程:针对HTML5开发的App如何下手?这就带你上车!
  6. 【每日早报】2019/09/24
  7. windows平台查看python安装路径
  8. java 程序包不存在
  9. Qt 6.2 报错“Qt requires a C++17 compiler...”的解决方法
  10. 【程序人生】茶感悟篇