自定义 Cython 生成的 .so 文件的位置
Customize location of .so file generated by Cython
我有一个带有 C 库包装器的 Cython 包。这是包的树结构
package/
_api.pxd
_wrap.pyx
setup.py
wrapper/
__init__.py
wrap.py
正在做
python setup.py build_ext --inplace
将 _wrap.so
文件放在顶层 package/
目录中,这在大多数情况下通常是必需的。但是,我的 wrap.py
需要 package/wrapper/
目录中的 _wrap.so
。我想知道是否有一种方法 setup.py
可以在所需位置自行创建 .so
文件,而无需手动将其复制并粘贴到该位置。
生成的 .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,
)
我有一个带有 C 库包装器的 Cython 包。这是包的树结构
package/
_api.pxd
_wrap.pyx
setup.py
wrapper/
__init__.py
wrap.py
正在做
python setup.py build_ext --inplace
将 _wrap.so
文件放在顶层 package/
目录中,这在大多数情况下通常是必需的。但是,我的 wrap.py
需要 package/wrapper/
目录中的 _wrap.so
。我想知道是否有一种方法 setup.py
可以在所需位置自行创建 .so
文件,而无需手动将其复制并粘贴到该位置。
生成的 .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,
)