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

如何构造包含Cython代码的Python包,第1张

如何构造包含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文件的历史记录。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5643049.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存