Setuptools:在package_data中包含子目录

时间:2019-06-17 16:41:51

标签: python pip setuptools

我相信这个问题是asked before,但我仍然有些困惑。我正在尝试安装一个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。有人知道我在想什么吗?任何帮助将不胜感激!

2 个答案:

答案 0 :(得分:1)

嗯,事实证明上面的方法很好!

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

然后我的数据文件位于site-packages/mypkg中。

答案 1 :(得分:0)

我遇到了同样的问题,就我而言,问题在于软件包已安装且在执行时

pip install .

在我的本地系统中,它没有重新安装,因此不包含这些软件包。

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

相关问题