【发布时间】:2010-11-10 21:07:06
【问题描述】:
使用 setup.py 打包 Python 包时,使用 setuptools:
from setuptools import setup
...
源代码分发创建者:
python setup.py sdist
不仅像往常一样包括在 MANIFEST.in 中指定的文件,而且还无偿地包括了 Subversion 在包目录下列出的所有受版本控制的文件。这非常烦人。不仅难以对与我的包一起分发的文件进行任何形式的显式控制,而且这意味着当我按照“svn export”而不是“svn checkout”构建包时,我的内容包可能完全不同,因为没有 .svn 元数据设置工具会对包含的内容做出不同的选择。
我的问题:我如何才能关闭这种可怕的行为,以便“setuptools”以相同的方式对待我的项目,无论我使用的是 Subversion,还是从未听说过的版本控制,或者使用“svn export”创建的裸树" 我在项目结束时创建的,以确保它在我的工作目录之外的某个地方干净地构建?
到目前为止,我做过的最好的事情是一个丑陋的猴子补丁:
from setuptools.command import sdist
del sdist.finders[:]
但这是 Python,而不是丛林,所以我当然想要一个完全不涉及猴子的更好的解决方案。我怎样才能驯服 setuptools,关闭它的魔力,并通过查看 MANIFEST.py 中可见的、可预测的规则来让它表现得明智?
【问题讨论】:
-
我想我在这里遇到了完全相同的问题,只有 .git 和 py2app:stackoverflow.com/questions/9845590/…
-
哇,它确实看起来像同样的问题!
-
我发布了一个monkeypatch hack 作为我自己问题的答案。还没有找到更好的东西
标签: python packaging setuptools egg