【发布时间】:2019-11-03 09:46:31
【问题描述】:
我创建并发布了一个 Python 包,但我无法让它包含一个文本文件。
这里是存储库:https://github.com/void4/gimpscm
我需要包含的文件是 procdump.txt,位于 gimpscm 目录中。
所以布局是这样的:
setup.py
setup.cfg
MANIFEST.in
gimpscm/
/__index__.py
/procdump.txt
/(other .py files)
我试过了:
- 在 setup.py 中包含一个 package_data 指令
- 各种 MANIFEST.in 指令
当前的 setup.py 包括:
package_data = {"gimpscm": ["gimpscm/procdump.txt"]},
include_package_data=True,
并且 MANIFEST.in 包含:
recursive-include gimpscm *.txt
txt 文件与 .py 文件一样包含在 dist 目录中 zip 的 gimpscm 子目录中。但是当我pip install gimpscm 时,文件根本没有安装。
我是这样发布包的:
python setup.py sdist
twine upload dist/*
在 pypi 网站上,上传的包确实包含 txt 文件,只是不包含在 pip install 中。
到目前为止,这个过程非常令人沮丧,Stackoverflow 和其他网站都没有给出明确的答案。在每种组合中,我都尝试了 MANIFEST.in 和 setup.py 指令方法。它仍然不起作用。 Python 文档对我来说也过于复杂和不清楚。
【问题讨论】:
-
添加到
package_data下 -
@vin 我做了,看到编辑过的问题
-
@vin 我尝试了这两种方法,在每种组合中,它仍然不起作用。我检查了所有相关的 stackoverflow 问题。
标签: python python-3.x pip package manifest