【发布时间】:2018-05-20 20:30:59
【问题描述】:
在模块的本地测试和分布式包(例如使用wheel)中是否有访问数据文件的pythonic方法?
具体来说,我的问题与下面链接的评论相同。
【问题讨论】:
-
documentation 应该会给您所需的答案。
-
基本上设置您的
setup.py文件以包含data_files列表,python 应该将它们与分布式包一起打包(例如当您将其转换为wheel时。它将在本地工作以及假设目录结构在分发过程中没有任何变化。 -
问题是
data_files确实改变了目录结构——它将文件放在data目录下的根目录下。对于位于不同文件夹和子文件夹中的文件,这将需要手动重新创建这些文件夹和子文件夹,这既繁琐又容易出错(对目录结构的任何更改都必须在那里重新实现)。链接的文档也适用于distutils,而不适用于setuptools(对不起,我没有在问题中指定,但我已经在wheel中有文件,我只需要访问);是否恰好具有相同的规格? -
来自文档:
Note that you can specify the directory names where the data files will be installed, but you cannot rename the data files themselves.,这意味着您应该能够移动数据文件部署到的位置。data_files=[('path/to/data/files',['data_file1.dat','data_file2.dat']。我认为setuptools处理它的方式相同,但不是 100% -
在仔细检查了
setuptools如何处理他们的数据文件后,我觉得它应该就地复制它们。因此,无论它们在您的本地文件夹中的什么位置,都应该是它们在您的部署中的最终位置。你的setup.py是什么样的?
标签: python setuptools