我相信这个问题是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。有人知道我在想什么吗?任何帮助是极大的赞赏!

最佳答案

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

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

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

09-25 19:38