cer*_*wen 6 python distutils pip setuptools
我发现多个来源(https://docs.python.org/3/distutils/sourcedist.html#specifying-the-files-to-distribute,http://blog.ionelmc.ro/2014/05/25/Python的包装/,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
当我setup.py install在virtualenv中运行或使用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安装运行需要数据文件的测试.这首先是正确的做法吗?
小智 0
我的理解是你应该
include testdata
而不是grafting 它 - 说实话,我实际上不确定它graft是什么。
include_package_data = True而且我认为根本不需要指定