Python将py文件转换为pyd文件

本文介绍了如何通过编译Python代码为pyd或so文件来提高运行效率和减少内存占用。首先,需要安装cython,然后可以使用easycython(非必需)进行编译。如果缺少C++编译环境,需要安装visualstudio C++ build tools。通过创建setup.py文件并执行编译命令,可以将Python脚本转换为pyd文件,从而提高程序性能。
摘要由CSDN通过智能技术生成

Python减少内存占用,可以参考如下文章:

从青铜到王者,一文教你节省90%内存占用

        文章中提到的将py文件进行编译,编译成pyd文件(Windows),或者.so文件(linux)后会提高运行效率,以及减少运行时间,这里进行演示,如何进行编译。

        网上好多教程都是让下载visual studio,直接安装,这样也没有问题,本篇教程不用安装visual studio来实现。

编译pyd之前需要安装cython

pip install cython

也可以使用easycython进行编译,这是一个经过二次封装的库,如果不想使用该工具,跳过该步骤即可。并不影响。

详细描述如下:

Python easycython包_程序模块 - PyPI - Python中文网

安装

pip install easycython

在进行编译时,如果没有提前安装C++编译环境会报错

这是你可以根据网上的建议,安装visual studio包,因为种种原因,本人的电脑不能安装visual studio包括社区版跟正式版以及破解版,都不能安装,这时只能单纯的安装visual studio C++ build tools

摘自网上的说明

        在windows下开发应用或库时,如果不想安装完整的visual studio,可以选择只安装build tools在命令行下进行编译等操作。这样可以节省硬盘空间,实测占用7GB,并且装在了C盘。
以下工具可以帮助您在命令行上构建C/ c++项目。
打开链接下载安装程序: Microsoft Visual C++ Build Tools 2015,双击visualcppbuildtools_full.exe,选择默认即可,点击安装,等待10分钟左右即可完成安装。

 下载安装参考:

如何下载visual c++ build tools的离线完整版_伙伴lqs的博客-CSDN博客_visualcppbuildtools_full

我使用上面的办法在线安装或者在线下载都失败,安装证书后重启电脑也失败,一直报错安装包丢失或损坏,只能找到网友下载过的,放到某盘上的链接才成功下载。

 使用下面的链接可以在博主的百度网盘链接直接下载,在下载完成,直接解压即可

解决visual studio C++ build tools时安装包缺失或损坏的问题(亲测绝对有用!!!)_Aaron-ywl的博客-CSDN博客_visualstudio安装包丢失或损坏

 解压后的内容如上所示,双击exe文件,直接默认安装即可,不用更改任何选项。

安装成功后,就可以愉快的进行编译了。

写一个示例,然后编译为pyd文件

def forDemo(num):
    for x in range(num):
        print(x)


if __name__ == '__main__':
    import time

    start_time = time.time()
    forDemo(100000)
    end_time = time.time()
    print(f'用时:{end_time - start_time}')

在同级目录编写setup.py文件

from distutils.core import setup
from Cython.Build import cythonize

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

 在terminal控制台执行如下指令进行编译

python setup.py build_ext --inplace

完成后会在同级目录生成build文件夹,temp.xxx开头的文件夹没有用,编译的结果在另外一个文件夹中,同时在同级目录会生成demo.c文件

将pyd文件访问跟测试demo.py同级目录,​​我们需要把它改成 demo.pyd,注意,是只能改成 demo.pyd;改成其他任何名字都不行,使用时会 import error。使用该 pyd 方式如下:直接导入即可

from demo import forDemo

  • 0
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值