Python setup.py-复制命名空间目录中的外部文件
我想安装具有以下结构的软件包:Python setup.py-复制命名空间目录中的外部文件,python,deployment,cython,setup.py,Python,Deployment,Cython,Setup.py,我想安装具有以下结构的软件包: ├── nsp │ ├── __init__.pxd │ └── A | ├── b.py | ├── extension.pxd | ├── extension.pyx │ └── __init__.py └── setup.py 其中,nsp是一个名称空间包。(动机:见) 我的安装脚本如下所示: from setuptools import setup from setuptools.extension
├── nsp
│ ├── __init__.pxd
│ └── A
| ├── b.py
| ├── extension.pxd
| ├── extension.pyx
│ └── __init__.py
└── setup.py
其中,nsp
是一个名称空间包。(动机:见)
我的安装脚本如下所示:
from setuptools import setup
from setuptools.extension import Extension
# factory function
def my_build_ext(pars):
# import delayed:
from setuptools.command.build_ext import build_ext as _build_ext
# include_dirs adjusted:
class build_ext(_build_ext):
def finalize_options(self):
_build_ext.finalize_options(self)
# Prevent numpy from thinking it is still in its setup process:
__builtins__.__NUMPY_SETUP__ = False
import numpy
self.include_dirs.append(numpy.get_include())
#object returned:
return build_ext(pars)
extensions = [Extension(nsp.A.extension, ['nsp/A/extension.cpp'])]
setup(
cmdclass={'build_ext' : my_build_ext},
setup_requires=['numpy'],
install_requires=['numpy'],
packages=['nsp.A'],
ext_modules=extensions
package_data={
'': ['*.pxd', '*.pyx']
},
)
根据我目前的理解,package_data
描述了应包含的所有非python文件。我希望在安装目录中重建上面给出的确切文件树。然而,不幸的是,\uuuu init\uuuu.pxd
没有被复制。我如何才能做到这一点?
我正在Windows 10 x64上使用Python 3.7。
packages=['nsp','nsp.A']
或者类似的东西package_data
描述了安装的软件包的位,由于nsp
未作为软件包列出,因此不包括其下的pxd
文件,这是正确的且有效的。谢谢@DavidW