setuptools / sdist:打包非打包文件

时间:2020-07-04 13:45:27

标签: python python-3.x setuptools setup.py

这是我认为必须解决的技术问题。在下面的用例中,也许还有其他解决方案,但是我也最关心如何解决技术问题。

我想创建一个源分发sdist,并想在打包期间生成一个数据文件,该文件应放入分布式包中。该数据文件在版本控制下不存在,但应打包。

项目设置如下:

+ project-root
  + package-root
    + some_package
    - __init__.py
    - main.py
    - DATA_FILE  <-- doesn't exist, but shall after sdist
  + setup.py
  + MANIFEST.in

据我了解,MANIFEST.in中的package_datasetup.py允许将包数据包含到源包中。 data_files弃用的setup.py属性允许将任何数据打包并安装到任何目标位置。但是我无法在程序包中定义位置,只能定义一个sys.path相对或系统绝对安装位置。

我可以覆盖sdist命令(使用cmdclass={'sdist': SdistHook}中的setup.py)来生成我的DATA_FILE并将其放置到project-root/package-root/DATA_FILE中,以便正确包装。但这会使我的工作副本变脏,我想避免。之后我可以删除该文件...但是我不认为是

我显然缺少的是一种将文件从某处(例如/tmp/DATA_FILE)复制到目标包中某个位置的方法,例如package-root/DATA_FILE

用例

如上所述,用例是创建一个详细的构建版本文件,其中包括已部署的应用程序已知的VCS信息。当应用在本地运行时,构建版本文件将不存在,并且应使用本地GIT信息。部署后,应使用已部署的版本文件。

0 个答案:

没有答案
相关问题