python - setup.py - 复制命名空间目录中的外部文件
问题描述
我想安装一个具有以下结构的包:
├── 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文件。我希望在安装目录中重建上面给出的确切文件树。然而不幸的是,__init__.pxd
没有被复制。我怎么能做到这一点?
我正在 Windows 10 x64 上使用 Python 3.7。
解决方案
推荐阅读
- kubernetes - Kubernetes 服务将外部 ip 设置为待处理
- javascript - 有没有办法计算 discord.js 中提及的字符
- javascript - Html 联系表单按钮处于非活动状态
- xamarin - 如何在 Xamarin 表单中针对不同环境在 android 和 iOS 项目上配置 APP CENTER 应用程序密钥?
- python - 如何在 Pyspark 中使用 groupby 删除列
- javascript - 当我播放我的 3 首曲目时,它们相互重叠,我如何在播放 track2 时暂停 track1?使用 javascript
- python - 如何在 tf.data.Dataset.map 中使用 sklearn.preprocessing?
- nlp - spacy 如何制作一个没有空格的名词名词匹配器?
- python - 当变量等于零时,循环不会结束
- arrays - 如何将字段添加到具有对象值数组的 Elastic Search 文档中?