[英]Python package Cython module
我有以下包结构:
+ repo/
+ setup.py
+ package/
+ module1/
+ submodule1.py
+ submodule2.pyx
+ module2/
+ submodule3.py
我想通过类似以下方式使用submodule1.py中的submodule2.pyx:
import submodule2
但是我绝对不知道该怎么做。 我尝试将以下几行添加到我的setup.py中:
from distutils.core import setup
from setuptools import setup
from Cython.Distutils import build_ext
ext_modules = cythonize(Extension(
"zindex",
sources=["ndmg/graph/zindex.pyx"],
language="c",
))
for e in ext_modules:
e.pyrex_directives = {"boundscheck": False}
setup(
name='ndmg',
ext_modules = ext_modules,
packages=[
'package',
'package.module1',
....
)
但没有成功。 我可以找到的所有教程都具有非常简化的示例,因此当该包的其余部分只是普通的python代码时,我不确定如何在我的python包中包括Cython模块。 有人能效法我吗?或者有人可以告诉我我做错了什么?
提前致谢!
cythonize的名称是Cython用来调用该模块的名称,以及将其导入为的名称。
上面的setup.py将生成一个名为zindex
的本机扩展, 即使在zindex包中的python文件中 ,也必须将其作为import zindex
。
这是如何执行此操作的示例:
from distutils.core import setup
from setuptools import setup
from Cython.Distutils import build_ext
ext_modules = cythonize(Extension(
"ndmg.graph.zindex",
sources=["ndmg/graph/zindex.pyx"],
language="c",
))
<..>
生成并安装扩展程序。
然后可以在ndmg / graph / py_index.py下的python文件中执行操作。
from zindex import <..>
从cython模块导入。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.