46 lines
1.3 KiB
Python
46 lines
1.3 KiB
Python
from setuptools import setup
|
|
from setuptools.extension import Extension
|
|
from Cython.Distutils import build_ext
|
|
from Cython.Build import cythonize
|
|
import numpy
|
|
from pathlib import Path
|
|
import shutil
|
|
|
|
|
|
class MyBuildExt(build_ext):
|
|
def run(self):
|
|
build_ext.run(self)
|
|
|
|
build_dir = Path(self.build_lib)
|
|
root_dir = Path(__file__).parent
|
|
target_dir = build_dir if not self.inplace else root_dir
|
|
|
|
self.copy_file(Path('./oh2004') / '__init__.py', root_dir, target_dir)
|
|
#self.copy_file(Path('./pkg2') / '__init__.py', root_dir, target_dir)
|
|
self.copy_file(Path('.') / '__init__.py', root_dir, target_dir)
|
|
def copy_file(self, path, source_dir, destination_dir):
|
|
if not (source_dir / path).exists():
|
|
return
|
|
shutil.copyfile(str(source_dir / path), str(destination_dir / path))
|
|
|
|
setup(
|
|
name="MyModule",
|
|
ext_modules=cythonize(
|
|
[
|
|
#Extension("pkg1.*", ["root/pkg1/*.py"]),
|
|
Extension("pkg2.*", ["./oh2004/oh2004.pyx"]),
|
|
#Extension("1.*", ["root/*.py"])
|
|
],
|
|
build_dir="build",
|
|
compiler_directives=dict(
|
|
always_allow_keywords=True
|
|
)),
|
|
cmdclass=dict(
|
|
build_ext=MyBuildExt
|
|
),
|
|
packages=[],
|
|
include_dirs=[numpy.get_include()],
|
|
)
|
|
|
|
# 指令: python setup.py build_ext --inplace
|