Python的文件类型介绍:

.py       python的源代码文件

.pyc     Python源代码import后,编译生成的字节码

.pyo     Python源代码编译优化生成的字节码。pyo比pyc并没有优化多少,只是去掉了断言

.pyd     Python的动态链接库(Windows平台)

.py, .pyc, .pyo 运行速度几乎无差别,只是pyc, pyo文件加载的速度更快,不能用文本编辑器查看内容,反编译不太容易

本文的目标是将test.py文件生成test.c文件,然后将test.c文件作为Python源码的一部分,重新编译生成Python,使用时直接import test即可使用test模块。

Cython基本介绍:

文档中这样总结Cython:

Cython is an optimising static compiler for both the Python programming language and the extended Cython programming language (based on Pyrex). It makes writing C extensions for Python as easy as Python itself.

是一个Python编程语言的编译器,写C扩展就像写Python代码一样容易。

其最重要的功能是:

write Python code that calls back and forth from and to C or C++ code natively at any point.

即 将Python代码翻译为C代码。之后就可以像前面文章介绍的C语言扩展Python模块使用这些C代码了。

Cython基本用法:

在使用Cython编译Python代码时,务必要安装C/C++编译器,微软为Python提供了专用的编译器Microsoft Visual C++ Compiler for Python 2.7(包含32位和64位) 下载地址: http://aka.ms/vcpython27 百度云链接: https://pan.baidu.com/s/143jxjyQFtb_NCIWXt0DVWA 提取码: 5ick

1.下载完成并安装。以本机为例,安装完成后的路径为:

2.修改python代码

修改python安装目录下Lib\distutils\msvc9compiler.py文件(如有必要可能msvccompiler.py文件也需要做相应更改,视系统而定),找到get_build_version方法直接return 9.0

然后再找到find_vcvarsall方法直接返回vcvarsall.bat的路径(以自己机器安装后的路径为准)

例如  return r'C:\Users\Administrator\AppData\Local\Programs\Common\Microsoft\Visual C++ for Python\9.0\vcvarsall.bat'

2. 安装Cython库

pip install Cython

3. 编写一个测试代码文件test.py放在D:/test/test.py

defsay_hello():print "hello world"

然后在同一目录下,新建一个setup.py文件,内容如下:

from distutils.core importsetupfrom Cython.Build importcythonize

setup(ext_modules= cythonize("test.py"))

cythonize()是Cython提供将Python代码转换成C代码的API,

setup是Python提供的一种发布Python模块的方法。

4. 使用命令行编译Python代码:

3.上述完成之后就可以在windwos下正常编译python的C扩展。执行如下命令

当然也可以建立一个windows的二进制包:

当然也可以直接编译到当前目录:

build_ext是指明python生成C/C++的扩展模块(build C/C++ extensions (compile/link to build directory))

--inplace指示 将编译后的扩展模块直接放在与test.py同级的目录中。

参考资料:

https://www.cnblogs.com/jianmu/p/7497274.html?utm_source=debugrun&utm_medium=referral

http://www.cnblogs.com/lazyboy/p/4017567.html

python编译 pyd 工具_windows平台 python生成 pyd文件相关推荐

  1. Python数学计算工具5、Python求最最小公倍数

    最小公倍数百度解析: 两个或多个整数公有的倍数叫做它们的公倍数,其中除0以外最小的一个公倍数就叫做这几个整数的最小公倍数.整数a,b的最小公倍数记为[a,b],同样的,a,b,c的最小公倍数记为[a, ...

  2. python编译 pyd 工具_avalon-fsn首页、文档和下载 - Python 编译构造工具 - OSCHINA - 中文开源技术交流社区...

    avalon-fsn avalon-fsn 是一个Python的编译构造工具,能够将你的代码Cython 使用avalon-fsn的好处 代码Cython化:Windows下把代码编译为pyd,Lin ...

  3. python windows窗口开发_Windows 平台做 Python 开发的最佳组合

    选自机器之心 作者:Jon Fincher 在 Windows 上怎样做 Python 开发?是像大神那样使用纯文本编辑器,还是用更加完善的 IDE?到底是用自带的命令行工具,还是需要装新的 Term ...

  4. python的开发工具有哪些,Python开发软件毕业设计

    python中用到哪些软件 一.Python代码编辑器1.sublime Textsublime Text是一款非常流行的代码编辑器,支持Python代码编辑,同时兼容所有平台,并且丰富的插件扩展了语 ...

  5. python安装pygame模块_windows下 python 如何安装pygame模块

    本机系统:win7,Pyhon版本: 3.6.0 1. 安装下载python 官网 https://www.python.org/ 下载地址 https://www.python.org/downlo ...

  6. python 内存分析工具_[转] python运行时内存分析工具meliae

    meliae是一个python进程内存占用监控.分析工具,它的安装需要依赖pyrex包. 一.安装: 安装python内存分析工具 sudo pip install cython sudo pip i ...

  7. python自动补全_Windows 下python的tab自动补全

    Windows 下python的tab自动补全# 对于新学python的朋友来说,python模块的功能多而难记,mac和Linux中有tab自动补全命令功能,使用Windows的同学们怎么办?下面我 ...

  8. windows 平台 js 生成 CSV文件中文乱码解决方案

    惯例:demo 地址 解决方法demo JS生成CSV文件 window 平台下会有中文乱码的问题,原因是windows 平台UTF-8文件头习惯加字节序标记0xEF 0xBB 0xBF,本身UTF- ...

  9. 用python和FreePic2Pdf工具手把手教你生成扫描版PDF文档的目录

    从网上下载一本书籍来看,结果却是书籍页数几百页还没有目录,要想找到自己想看的部分还的自己徒手去翻,哇.....这时心态就崩了,你识别是也遇到过这种情况.很多下载下来的pdf文档都是扫描版的,一般都没有 ...

  10. python数学公式编辑工具_使用Python一键生成LaTeX数学公式

    简介 latexify使用教程latexify-py模块安装 基本语法 实例加减乘除.分数 分段函数 根号.幂 三角函数 绝对值 对数 Markdown的数学公式相关教程 参考资料.GitHub地址 ...

最新文章

  1. TypeError: ‘method‘ object is not subscriptable
  2. css中 media的用法,如何在css中正确使用@media
  3. Oracle发布开源的轻量级 Java 微服务框架 Helidon 1
  4. 超简单,带你学会多线程爬虫
  5. 数据结构 | 如何一文搞定链表问题?(附20本书获奖名单)
  6. 查找xml文件中某接点的值
  7. java 数据包含_如何高效判断java数组是否包含某个值
  8. Java反编译器的剖析
  9. cd-rom门锁定什么意思_CD-ROM XA的完整格式是什么?
  10. Nginx核心模块ngx_http_proxy_module与nginx反向代理、负载均衡详解
  11. slf4j和log4j的使用
  12. 特斯拉:部分帖文包含不实信息 将定期分享真实情况
  13. 带透明png转换成c数组
  14. linux下的工作目录切换实现
  15. 能源消耗总量计算公式_能源统计
  16. 已知直线方程,计算直线对应的向量
  17. bzoj 1941 kd-tree求最大最小曼哈顿距离
  18. php调用shell执行scp,使用shell脚本自动执行scp文件传输
  19. [vue] 无缝滚动 vue-seamless-scroll 滚动表格
  20. 新概念模拟电路——晶体管构建的放大电路动态分析

热门文章

  1. word打开文档很久很慢_Windows10系统下打开Word文档很慢的多种处理技巧
  2. 正则表达式清除空格和html标签中的nbsp;空格
  3. 编程制作动态壁纸的思路_Android应用源码动态壁纸开发必看例子源码
  4. 网页游戏的项目设计方案分享
  5. 基于微信小程序的物流仓储系统
  6. 5.16 图层合并的几种方式 [原创Ps教程]
  7. 人工智能——文本分类(大作业必备)
  8. 中国供应链金融行业全景调研与发展战略研究规划报告2022-2028年版
  9. linux so 加壳,[android] 从加壳的so文件中抽出symbols
  10. Redisson延迟队列