栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何构造包含Cython代码的Python包

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

如何构造包含Cython代码的Python包

我现在已经在Python程序包

simplerandom
(BitBucket
repo-
编辑:now
github)中亲自完成了这个任务(我不希望这是一个受欢迎的程序包,但这是学习Cython的好机会)。

此方法依赖于以下事实:

.pyx
使用
Cython.Distutils.build_ext
(至少使用Cython版本0.14)构建文件似乎总是
.c
在与源
.pyx
文件相同的目录中创建文件。

这是一个精简版,

setup.py
希望其中包含要点:

from distutils.core import setupfrom distutils.extension import Extensiontry:    from Cython.Distutils import build_extexcept importError:    use_cython = Falseelse:    use_cython = Truecmdclass = {}ext_modules = []if use_cython:    ext_modules += [        Extension("mypackage.mycythonmodule", ["cython/mycythonmodule.pyx"]),    ]    cmdclass.update({'build_ext': build_ext})else:    ext_modules += [        Extension("mypackage.mycythonmodule", ["cython/mycythonmodule.c"]),    ]setup(    name='mypackage',    ...    cmdclass=cmdclass,    ext_modules=ext_modules,    ...)

我还进行了编辑,

MANIFEST.in
以确保将
mycythonmodule.c
其包含在源分发中(使用创建的源分发
python setup.pysdist
):

...recursive-include cython *...

我不承诺

mycythonmodule.c
版本控制“ trunk”(或Mercurial的“
default”)。发布时,我需要记住先进行操作
python setup.pybuild_ext
,以确保
mycythonmodule.c
该源代码是最新的并且是最新的。我还创建了一个release分支,并将C文件提交到该分支中。这样,我就拥有与该发行版一起分发的C文件的历史记录。



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

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

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