栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

如何在pycharm上编译使用pyx文件

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何在pycharm上编译使用pyx文件

前言

cython是专门用来写在Python里面import用的扩展库。实际上Cython的语法基本上跟Python一致,而Cython有专门的“编译器”先将 Cython代码转变成C,然后使用C编译器编译出最终的Python可调用的模块。
本人因在github中找到了一份用cython写的自定义库函数代码,但无法直接运用到我所创建的pycharm编辑的项目文件中,因此为了实现在pycharm中py文件的代码调用,写了这篇文章。

一、pyx,pyd文件是什么? pyx文件

pyx 文件是由 Cython 编程语言 “编写” 而成的 Python 扩展模块源代码文件。.pyx 文件要想被python语言直接识别,必须先被编译成 .c 文件,再编译成 .pyd 或 .so 文件,才可作为模块 import直接导入使用。

pyd文件

pyd 文件是非 Python,由其它编程语言 “编写-编译” 生成的 Python 扩展模块。Python 要导入 .pyd 文件,实际上是在 .pyd 文件中封装了一个 module。在 python 中使用时,把它当成 module 来用就可以了,即:“import 路径名.modulename” 即可,路径名为 .pyd 文件所在的路径。
介绍更加详细和全面的可以参考https://blog.csdn.net/qq_35608277/article/details/88937904
———————————————

二、使用步骤 1.安装对应的python平台和pycharm

在这里我使用的是python3.8和pycharm2020社区版(对于一般的来说够了)

2.创建编写对应的pyx文件

pycharm也可以直接创建编写pyx文件,但是在编写语法上需要按照cython格式去编写
创建pyx文件直接新建,后缀名为pyx即可

编写对应的SegmentImage.pyx文件,按照cython格式来,这里只是举个例子

3.编写对应的setup.py文件

setup.py文件的主要目的就是对pyx文件进行编译,然后生成pyd文件,方便在py文件中直接调用
代码如下:
代码如下(示例):

from distutils.core import setup
from distutils.extension import Extension
from Cython.Distutils import build_ext
import numpy as np

filename = 'SegmentImage'
full_filename = 'SegmentImage.pyx'

ext_modules = [Extension(filename, [full_filename],
                         language='c++',
                         extra_compile_args=['-O3', '-march=native', '-ffast-math', '/openmp'],
                         extra_link_args=['/openmp'])]

setup(
    cmdclass={
        'build_ext': build_ext},
    ext_modules=ext_modules,
    include_dirs=[np.get_include()])
4.编译setup文件,生成pyd文件

编译setup文件时,不要直接运行setup.py,不然可能出现这样的错误‘no commands supplied’
这是因为python的run程序,相当于命令行里的python setup.py
所以若想要不报错,有两种方法
1、打开 pycharm的命令行模式,点pycharm 左下角的电脑方块图标,选中【Terminal】即可进入终端,输入命令: python setup.py install。

2、直接从cmd进入文件所在目录下输入令: python setup.py install

pyx成功编译后的界面如下

这样就完成了对pyx文件的成功编译,在py文件中直接调用对应的库文件就好

from SegmentImage import segmentImage 
三、总结

总结起来就是步骤如下:
第一步安装对应的python和pycharm;第二步编写对应的pyx文件;第三步编写对应的setup文件;第四步生成pyd文件;第五步直接调用
参考博客:https://blog.csdn.net/u011418530/article/details/79986070
https://blog.csdn.net/ditai7533/article/details/101966350;https://blog.csdn.net/qq_35608277/article/details/88937904

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/350414.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号