【发布时间】:2023-11-25 22:08:01
【问题描述】:
我想创建一个新命令作为我的 setup.py 文件 (python setup.py manifest) 的一部分,或者扩展 sdist 命令本身。
对于我正在做的发行版,进入sdist 创建的压缩包的“构建”文件结果是静态的。与已安装的模块一起分发的 md5 摘要文件将是检查模块的便捷方法。
他们的命名空间元素是否在 sdist 对象中,例如进入 tarball 的文件列表,或者可以帮助我解决此问题的 tarball 名称?
这是我认为可能有意义的事情:
from setuptools import setup, find_packages, Command
from distutils.command.sdist import sdist
...
class my_sdist(sdist):
# Get file list for the tarball
flist = sdist. ???
# Do the MD5
os.system( ... )
# Add the new MD5 File to the list
sdist. ??? = flist + new file
return sdist.run(self)
...
setup( ... , cmdclass = { 'sdist' : my_sdist }, ... )
【问题讨论】:
-
"有一个 md5 摘要文件与已安装的模块一起分发" — sdists 不是 Python 包的 已安装 格式。使用任何相当新的 pip 版本安装的软件包都将安装为*(如果没有*可用,则从 sdist 构建),其中包含列出*中所有其他文件的 SHA 256 哈希的
RECORD文件。 -
@jwodder 不幸的是,在我弄清楚如何(读作“被打扰”)处理必须安装在
/etc/{init.d,logrotate.d,cron.hourly}中的配置文件之前,我坚持使用非轮式分发(使用--no-binary选项)。也就是说,RECORD文件(用于安装*)是否已安装? -
是的,
RECORD文件与其他*元数据一起放置在已安装 Python 代码旁边的*.dist-info目录中。
标签: python setuptools