这是我第一篇CSDN博客。我从13年入学网络工程专业本科,到现在博二已经有9个年头了。之前解决代码中的BUG基本全是在网上搜索,CSDN社区等帮了我很多忙。但是自己却从没有写过博客,这让我感觉十分愧疚。上星期,我解决了cython文件中的一些问题,想在这里记录一下,以便以后遇到相似问题可以用上。

cython这个语言非常小众,是一个利用python语言调用C语言进行编译运行的方法,可以对代码运行速度进行提升。挺有意思的。

在进行编译时,主要是对.pyx文件进行修改,修改完毕后,另写一个python程序对pyx文件生成吃c文件和pyd。其中,pyd文件最为关键,python在进行调用时,首先调用的就是pyd文件,而这个文件在生成时却经常面临生成不了的BUG。下面的代码是编译pyx用的。


from Cython.Build import cythonize
#from distutils.core import setup
from distutils.extension import Extension
from Cython.Distutils import build_ext
import numpy as np
setup(ext_modules=cythonize("word2vec_inner.pyx",language_level = 3),  include_dirs=[np.get_include()])ext_modules = [Extension('word2vec_inner',['word2vec_inner.pyx'],)]
setup(
name = 'word2vec_inner',
cmdclass = {'build_ext': build_ext},
ext_modules = ext_modules,  include_dirs=[np.get_include()]
)

如果运行上面代码生成pyd失败,有可能是因为老版本的pyd正在运行。这是由于你之前运行的程序发生了内存错误,导致python页面中的进程显示退出了,往往是 return 000656456(非常大的一个数),但这时pyd实际上还在运行,需要在任务管理器中结束python程序,就可以重新生成pyd了。

此外pxd文件类似于c语言中的.h文件,对你pyx中的函数提前进行了声明,因此如果要改pyx中的函数的话,需要在pxd中也一并修改。

写的比较凌乱,此外还有一些关于gil、nogil和多线程运行的坑,以后有机会再写。

近期修改cython文件问题汇总相关推荐

  1. jdbc连oracle dns报错,近期处理的oracle问题汇总

    近期处理的oracle问题汇总 1.内存问题导致数据库宕机 分析数据库alert日志无异常信息,停在某一时间点,分析操作系统日志,发现系统有重启操作,报硬件 内存错误 2.磁阵问题导致数据库hang住 ...

  2. Python使用三种方法批量修改记事本文件编码格式

    应用背景:近期计划写一个贝叶斯算法邮件分类的教学案例,苦于没有足够的训练集,就让同学们帮忙每人从自己的邮箱中找几封垃圾邮件把内容复制下来放到记事本文件中发给我,但是忘了提前统一编码格式要求,所以收到的 ...

  3. 查询oracle数据库错误修改了,【案例】Oracle报错ora-00600[2662] 修改控制文件scn推进数据库scn...

    天萃荷净 运维DBA反映数据库重启后无法启动,报错ora-00600[2662],分析原因为SCN异常导致,通过修改控制文件scn推进数据库scn 在数据库遇到ora-600[2662],scn不一致 ...

  4. aix服务器移动文件系统,AIX文件系统管理汇总:命令+SMIT实战

    AIX文件系统管理汇总:命令+SMIT实战 转载请在文首保留原文出处: 介绍 本文对AIX文件系统的管理及操作注意事项做了总结,并以JFS文件系统为例,通过命令行和SMIT两种方式进行实战演习.为AI ...

  5. 什么是Hosts文件以及如何修改Hosts文件

    一.什么是hosts文件 hosts是一个没有扩展名的系统文件,其基本作用就是将一些常用的网址域名与其对应的 IP 地址建立一个关联" 数据库 ".当用户在浏览器中输入一个需要登录 ...

  6. 批量修改php用什么,php批量修改指定文件后缀的方法

    php批量修改指定文件后缀的方法 发布于 2014-09-14 18:52:21 | 150 次阅读 | 评论: 0 | 来源: 网友投递 PHP开源脚本语言PHP(外文名: Hypertext Pr ...

  7. 使用js来修改css文件来动态隐藏元素

    正常情况下使用js来更改元素的样式,我们都是通过dom或者jquery来取元素然后设置style,比如$('.ele').hide()和show()来控制元素的隐藏和显示. 但是考虑一下这种情况,我们 ...

  8. git导出修改新增文件指定分支、月份、用户作者

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.新建文件 1. 新建文件addr.txt 文件填写git地址 2.新建文件get.sh 3.新增文件run.sh ...

  9. 【A200】 TX1核心 JetPack4.6.2版本如何修改DTB文件测试全部SPI

    大家好,我是虎哥,很长时间没有发布新内容,主要是这段时间集中精力,研究DTB设备树的修改,以适配不同载板,同时也是专门做了一个TX1&TX2核心,双网口,可以使用SPI 扩展CAN接口的载板, ...

最新文章

  1. 在Windows2016中回到DOS时代用tt练习打字
  2. 图像处理(一)——使用matlab放缩图像
  3. padavan 源码
  4. Ant找不到rt.jar
  5. caj文件浏览器_caj文件怎么转换成pdf文件?试试这样操作,3步成功转换
  6. Web项目练习总结(错误校正篇)
  7. 使用WCF实现消息推送
  8. java生成txt_Java ThreadDump 生成解析
  9. Java-数据库连接池第一篇
  10. 国内外各大免费搜索引擎、导航网址提交入口(转载)
  11. 【腾讯云】企业认证题库200题
  12. 10.16 Loi队内胡策 贪心+毒瘤输入+DP+数论
  13. 智能注塑工艺与模流分析技术研讨会暨上海大学Moldex3D实训基地开幕式圆满结束
  14. 每个人心中都有一个Eumenides
  15. 颗粒归仓水稻总体产量5500吨 国稻种芯-洪江:怀化水稻秋收
  16. python双柱状图与双折线图_双坐标实现图标中同时存在柱状图和折线图
  17. jdk14下载与安装教程(win10)超详细
  18. C语言文件——从创建到删除
  19. 产品大神有张小龙,为什么运营少有大神?
  20. java mongo replica_mongo 的replica set的集群模式 实现读写分离

热门文章

  1. Valgrind基本用法
  2. win10下安装elasticsearch-head
  3. valgrind使用整理
  4. 不正确的移动类型的更新控制(输入101 X X)
  5. 医生学python_Python微医挂号网医生数据抓取
  6. super关键字什么时候使用?super的适用场景是?
  7. 走进WebAssembly
  8. 无聊到能吓死一湾人的鬼畜代码
  9. HackTheBox-baby nginxatsu
  10. 堆区(Heap)详细介绍