setup.py在virtualenv中安装数据文件在哪里?

时间:2016-02-01 23:17:21

标签: python pip setuptools distutils

我发现多个来源(https://docs.python.org/3/distutils/sourcedist.html#specifying-the-files-to-distributehttp://blog.ionelmc.ro/2014/05/25/python-packaging/http://blog.ionelmc.ro/2014/06/25/python-packaging-pitfalls/)表明在Python包中分发数据文件的方法是使用setuptools的include_package_data选项和MANIFEST.in。我的包中的文件看起来像,

setup.py

setup( # ... include_package_data = True, # ... 与文件的其余部分(希望无关)被省略。

MANIFEST.IN

graft testdata include ChangeLog include README.rst include COPYING include COPYING.LESSER include tox.ini

当我在virtualenv中运行setup.py install或使用pip时,我最终会得到Python源文件,但是在任何地方都没有testdata/我可以找到它。我认为这是我的包装中的一个错误,除了当我抓住另一个具有类似布局的包时,我也找不到数据文件。如果我克隆示例程序包https://github.com/ionelmc/python-nameless的存储库并使用setup.py install进行安装,则程序包将安装在目录lib/python3.4/site-packages/nameless-0.1.0-py3.4.egg/nameless/中。但是,我无法在virtualenv中的任何地方找到任何数据文件或测试。他们应该在哪里结束?这应该如何运作?

我提出这个问题的动机是项目的另一个贡献者想要从pip安装运行需要数据文件的测试。这首先是正确的做法吗?

1 个答案:

答案 0 :(得分:0)

我的理解是你应该

include testdata

而不是graft - 说实话,我实际上不确定graft是做什么的。

此外,我认为无需指定include_package_data = True