Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python setup.py-复制命名空间目录中的外部文件_Python_Deployment_Cython_Setup.py - Fatal编程技术网

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