MANIFEST.in 未在站点包中添加数据文件夹

问题描述

以下是文件夹结构

project_name
    src
        pkg
            folder1
                __init__.py
                mod1
            folder2
                __init__.py
                mod1
                data_folder
                    data.pkl
            __init__.py
    __init__.py
    MANIFEST.in
    setup.py

为了确保 data_folder 包含在包中,我编写了 MANIFEST.in

include src/pkg/folder2/data_folder/*

和 setup.py

package_dir={"": "src"},packages=find_packages("src"),include_package_data=True,

然而,当我检查站点包时,没有data_folder。我错过了什么?

解决方法

当使用 setuptools 时,不再需要清单文件。设置工具会处理它。

相反,这必须在 setup.py 文件中完成。

from setuptools import setup
setup(
.
.
package_data={"pkg":["folder2/data_folder/*.pkl"]},include_package_data=True,.
.
)

此外,__init__.py 及其子文件夹中不需要 data_folder。这为我解决了问题。