python:.py文件转.dll文件(.pyd文件)

您所在的位置:网站首页 python导出代码 python:.py文件转.dll文件(.pyd文件)

python:.py文件转.dll文件(.pyd文件)

2023-11-03 21:11| 来源: 网络整理| 查看: 265

基于python,把python文件转为.dll文件,我查了很多方法,没有能把python文件直接转.dll文件的。.py要转dll文件都是先转成.pyd文件,然后再把.pyd这个后缀改成.dll,如此才成功地把.py文件转为了.dll文件。.py文件转.pyd文件,我综合了我搜索到地教程,写成以下的三个方法。下面的方法都是基于我安装了anaconda,以及c++语言相关的程序(c++相关程序是个坑,要必须安装的,否者转不成功的)

方法一

第一步,打开cmd(命令行),安装第三方库easycython,输入以下代码(提醒:这里我开头说过我是安装了anaconda的,并且把anaconda的环境变量配置到系统的环境变量了,配置环境变量可以参考这篇博客:添加anaconda环境变量)

pip install easycython

第二步,创建一个.py文件,如test.py,文件内容如下:

def test(): print("调用成功") ruturn 11

接着把 test.py 文件重命名为 test.pyx

第三步,打开cmd进入test.pyx 文件所在目录,输入以下代码:

easycython *.pyx

得到如下图,则py文件转.pyd文件完成

 图中黄线是我进去.pyx文件所在的文件夹(目录)的操作,红线则是说明转换完成了

方法二

第一步,在anaconda已创建的环境中安装cython库,代码如下:

pip install Cython

第二步,创建一个名为 py_to_pyd.py 文件,内容如下代码:

import Cython.Build import distutils.core def py2c(file): cpy = Cython.Build.cythonize(file) # 返回distutils.extension.Extension对象列表 distutils.core.setup( name='pyd的编译', # 包名称 version="1.0", # 包版本号 ext_modules=cpy, # 扩展模块 author="wode", # 作者 author_email='[email protected]' # 作者邮箱 ) if __name__ == '__main__': file = "atest.py"#需要转的py文件的名字(有时候可以写文件的绝对路径) py2c(file)

 其中 atest.py 为要转的py文件

第三步,在PyCharm中打开Terminal终端,输入一下代码:

python py_to_dll.py build_ext --inplace

如图所示

得到下图,则说明转换完成

 用这个方法的好处是,不用考虑python的版本问题,即调用时不会出现下面矩形框中的问题

 同时图中椭圆框中,导入时虽然出现红线,但是不影响调用

方法三

算了我不想写了,参考一下这篇博客吧

https://blog.csdn.net/kdongyi/article/details/102678595



【本文地址】


今日新闻


推荐新闻


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