1

我有点迷失在所有可以添加数据文件的位置。首先,有MANIFEST.in文件。据我了解,这只是为了指定要包含在“源代码分发”中的源文件。然后是函数的data_files参数setup(),您可以在其中列出应该安装的文件,但它来自根目录(无论是/,还是~user/.local)。最后,有package_data一个假装做我想做的事......但在 bdist 上,我看不出有什么不同data_files

我有一个数据文件,比如“default_conf.cfg”。

我的MANIFEST.in包含:

include default_conf.cfg

我的setup.py

setup(
  # ...
  package_data={
    '': ['default_conf.cfg'],
  }
)

当我执行 a./setup.py sdist时,包含该文件,与./setup.py bdist(如预期的那样)相同

但是,如果我尝试安装为可编辑包 ( pip install --user -e .),我无法访问它pkg_resources.resource_string(__name__, 'default_conf.cfg')

我缺少什么能够从分发/安装中的任何类型访问它?

(文档非常冗长,信息分散在几个页面中,因此很容易遗漏一些内容。)

编辑

我把我的数据文件作为我模块的子目录,它似乎更好:

my_pkg/
|-my_pkg/
| |-__init__.py
| |-data/
| | |-default_conf.cfg
| 
|-setup.py

设置.py:

setup(
  # ...
  package_data={
    'my_module': ['data/default_conf.cfg'],
  }
)

但是,当我尝试时pip install --user -e .,.egg-link 的内容是/.../my_pkg/build/lib而不是/.../my_pkg,那么当然,它不是实时可编辑的......为什么 setuptools 使用这个路径?

4

1 回答 1

0

编辑实际上回答了这个问题。安装可编辑问题是由我的 setup.py 模板中默认的 py2to3 步骤引起的。

于 2018-07-12T14:55:38.347 回答