【发布时间】:2021-12-19 22:19:36
【问题描述】:
我在安装我的 python 包时遇到了问题,因为我的包中很可能包含一些意外的文件和文件夹。我已经使用MANIFEST.in 以及setup.py 文件中的exclude= 选项排除了许多文件和文件夹。但是,如果不知道我的包中“跟踪”的所有文件/文件夹的列表,似乎几乎不可能纠正这个问题。
在基于 git 的版本控制系统中有一个简洁的系统,它允许忽略单个文件 .gitignore 中的文件/文件夹,并使用 git ls-files 命令列出存储库中包含的文件。
不知道python打包系统中是否有与git ls-files等效的命令。如果存在这样的命令,那将是我的福气,可以轻松纠正我的包裹问题。
如果不是命令,我可以根据setup.py 和MANIFEST.in 中的条件以任何方式列出我的python 包中包含的所有文件吗?
【问题讨论】:
-
如果您指的是分发包存档 - 它取决于存档类型。轮子(
.whl扩展名)或带有.zip扩展名的 sdist 是 zip 存档,因此请使用unzip -l dist。对于带有.tar.gz扩展名的sdist,请使用tar -tavf dist或tar -tzvf dist。 -
列出已安装的文件——查看文件
site-packages/<package>-<version>.dist-info/RECORD -
我只是想在创建 whl 或 sdist 之前列出包中包含的所有文件。我怀疑很多大数据文件不幸包含在我的包中,所以我不想通过创建 whl 或 sdist 来复制它们。在继续创建包之前,我想简单地获取一个列表并知道预先包含哪些文件。我希望这可以澄清。
-
否则,对于小文件大小,您提到的创建 dist 会起作用。感谢您的建议。
-
"…在创建 whl 或 sdist 之前列出包中包含的所有文件。" 试试
python setup.py bdist -n
标签: python pip setuptools setup.py python-packaging