设置工具:在 package_data 中包含子目录

Setuptools: Include subdirectories in package_data

我相信这个问题是 但我还是有点卡住了。我正在尝试安装一个 Python 包,其中包含一些带子目录的数据文件。这是我的设置:

setup.py
src/
    mypkg/
        __init__.py
        module.py
        data/
            tables.dat
            spoons.dat
            sub/
                forks.dat

以下 the docs 我尝试添加:

setup(...,
  packages=['mypkg'],
  package_dir={'mypkg': 'src/mypkg'},
  package_data={'mypkg': ['data/*.dat', 'data/sub/*.dat']},
)

我使用 python setup.py install 安装模块(尽管最终我会使用 python setup.py sdist upload 将包上传到 pypi,以便其他人可以 pip install 该模块。

在运行 python setup.py install 命令之后,为了找到模块位置,我然​​后import mypkgprint(mypkg.__file__)。但是,在包目录中,我可以看到 data 而不是 data/sub。有谁知道我错过了什么?非常感谢任何帮助!

啊,原来上面的工作正常!

要将模块安装到我的 site-packages/mypkg 位置,我只需使用:python setup.py sdist,然后是 pip install dist/mypkg-0.0.1.tar.gz

然后我的数据文件在 site-packages/mypkg

我有同样的问题,在我的例子中,问题是安装包和执行时

pip install .

在我的本地它没有重新安装,所以没有包含这些包。

安装前卸载对我来说是关键