使用Cython和cythonize编译后,我正在构建一个Python包。
以下是我的 setup.py 外观的示例:
from setuptools import setup,find_packages,Extension
from Cython.Build import cythonize
setup(
name="My_Pkg",version="0.0",ext_modules=cythonize('lib/my_pkg/my_mod.py'),)
以下是我的项目目录树的示例:
.
├── lib
│ └── my_pkg
│ ├── __init__.py
│ └── my_mod.py
└── setup.py
执行setuptools时,一切正常:
MACOSX_DEPLOYMENT_TARGET=10.15.1 python setup.py build_ext bdist_wheel
我的模块已正确转换为“ .c”,并在“ build”目录中编译为“ .so”。完成所有操作后,将在'dist'中创建wheel:
.
├── My_Pkg.egg-info
│ ├── PKG-INFO
│ ├── SOURCES.txt
│ ├── dependency_links.txt
│ └── top_level.txt
├── build
│ ├── bdist.macosx-10.7-x86_64
│ ├── lib.macosx-10.7-x86_64-3.7
│ │ └── my_pkg
│ │ └── my_mod.cpython-37m-darwin.so
│ └── temp.macosx-10.7-x86_64-3.7
│ └── lib
│ └── my_pkg
│ └── my_mod.o
├── dist
│ └── My_Pkg-0.0-cp37-cp37m-macosx_10_7_x86_64.whl
├── lib
│ └── my_pkg
│ ├── __init__.py
│ ├── my_mod.c
│ └── my_mod.py
└── setup.py
我的问题是我想在setuptools构建阶段将'__init__.py'也复制到'build'中(而不进行编译)。我也希望将其包装在生成的轮子中,作为发行版的一部分。
有什么主意吗?