自定义Cython生成的.so文件的位置

2024-05-20 14:17:26 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个Cython包,里面有一个C库的包装。这是包的树结构

package/
       _api.pxd
       _wrap.pyx
       setup.py
       wrapper/
              __init__.py
              wrap.py

^{pr2}$

_wrap.so文件放入顶层package/目录,这在大多数情况下通常是必需的。但是,我的wrap.py需要package/wrapper/目录中的_wrap.so。我想知道有没有一种方法可以让setup.py在所需的位置创建.so文件,而无需手动复制并粘贴到该位置。在


Tags: 文件py目录apipackagesoinitsetup
1条回答
网友
1楼 · 发布于 2024-05-20 14:17:26

生成的.so文件的输出文件夹可以指定为setuptools.Extension函数的第一个参数。在

这是一个Cython扩展的例子

from setuptools import setup, find_packages, Extension
from Cython.Distutils import build_ext

ext_modules=[
    Extension("package.wrapper.wrap",    # location of the resulting .so
             ["package/wrapper/wrap.pyx"],) ]


setup(name='package',
      packages=find_packages(),
      cmdclass = {'build_ext': build_ext},
      ext_modules = ext_modules,
     )

相关问题 更多 >