cpython编译与运行

您所在的位置:网站首页 windows怎么看python版本 cpython编译与运行

cpython编译与运行

2023-06-08 06:05| 来源: 网络整理| 查看: 265

一.配置环境

python 本身不能运行 cpython 的语法,需要 编译 后引用

需要 gcc 编译器 和 cython 编译器 gcc编译器 把 c语言 编译成扩展模块 Cython 编译器是一种源到源的编译器 python 语法编译成 c语法

1.安装gcc 编译器 gcc 编译器可以下载 Visual Studio 或者 MinGW MinGW-w64官方网站首页(http://mingw-w64.org/) ![在这里插入图片描述](https://img-blog.csdnimg.cn/d8543ac0473446708d2aae68c6e3fe6d.png在这里插入图片描述

![在这里插入图片描述](https://img-blog.csdnimg.cn/d3cd773ce5224786a8beb14234032d77.png

直接下载最近版本的online installer根本连接不到对方的文件库,所有下载所有文件的zip 这个世界上只有两种操作系统,符合 posix 协议的,和 Windows 。如这个笑话所说的,如果你想要开发 Windows 程序,需要选择 win32 ,而开发 Linux、Unix、Mac OS 等其他操作系统下的程序,则需要选择 posix 。 操作:我只开发在 Windows 下运行的程序,所以选择了 win32 。

异常处理在开发中非常重要,你在开发的过程中,大部分的时间会耗在处理各种异常情况上。如果你之前选择了 64位,则这里有两个异常处理模型供你选择,seh 是新发明的,而 sjlj 则是古老的。seh 性能比较好,但不支持 32位。 sjlj 稳定性好,支持 32位。 操作:我这里选择了 seh 。

说明:选择了 32位 后,则可以用 dwarf 和 sjlj 两种异常处理模型。同样的,dwarf 的性能要优于 sjlj ,可以它不支持 64位 。 操作:建议选择 dwarf 。

![在这里插入图片描述](https://img-blog.csdnimg.cn/bb141bad6ff84667a5ff78f18e0e0612.p 配置系统环境变量 添加你的mingw64/bin,如:D:\mingw64\bin 使用cmd命令运行成功则如下图

gcc -v

在这里插入图片描述

2.安装cython编译器

pip install Cython #正常运行则成功 from Cython import __version__ print(__version__) # 0.29.14 二.编译运行

创建 cython文件 fib.pyx

def fib(n): """这是一个扩展模块""" cdef int i cdef double a=0.0, b=1.0 for i in range(n): a, b = a + b, a return a

创建 setup.py 文件编译 cython

from distutils.core import setup from Cython.Build import cythonize # 我们说构建扩展模块的过程分为两步: # 1)将 Cython 代码翻译成 C 代码; # 2)根据 C 代码生成扩展模块 # 第一步要由 Cython 编译器完成, 通过 cythonize; # 第二步要由 distutils 完成, 通过 distutils.core 下的 setup setup(ext_modules=cythonize("Z:\\code\\sj\\python\\dev\\codecython\\test.pyx", language_level=3)) # 里面还有一个参数 language_level=3 # 表示只需要兼容 Python3 即可,而默认是 2 和 3 都兼容 # 如果你是 Python3 环境,那么建议加上这个参数 # cythonize 负责将 Cython 代码转成 C 代码 # 然后 setup 根据 C 代码生成扩展模块

然后编译

python setup.py build

成功 执行完命令之后,当前目录会多出一个 build 目录,里面的结构如图所示。重点是那个 fib.cp38-win_amd64.pyd 文件

如果出现 在这里插入图片描述 则重新下载 build tools 在这里插入图片描述

在这里插入图片描述

三.引用 import fib # 我们看到该 pyd 文件直接就被导入了 # 至于中间的 cp38-win_amd64 指的是解释器版本、操作系统等信息 print(fib)

参考资料 编译并运行 Cython 代码的几种方式 MinGW-w64安装教程——著名C/C++编译器GCC的Windows版本



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3