为什么在执行setup.py sdist时find_packages(exclude = xxx)不起作用?

Eri*_*ric 4 python setup.py

我正在打包我的源代码,但我不想包含测试和文档,因为它太大了。

为此,我将其包含在setup.py中:

setup(...
      packages=find_packages(exclude=['tests.*','tests','docs.*','docs']),
      ...
)
Run Code Online (Sandbox Code Playgroud)

当做一个

python setup.py sdist
Run Code Online (Sandbox Code Playgroud)

我可以看到我的root tests /和docs / dirs以及其中的所有内容仍然包含在生成的发行版中。

似乎只有

python setup.py bdist
Run Code Online (Sandbox Code Playgroud)

对exclude参数很敏感。

为什么呢 是否可以排除“ setup.py sdist”的目录?

Eri*_*ric 6

我通过删除* .egg-info /目录解决了这个问题:似乎该目录存储了一些较旧的设置...

  • 对于发现此内容的任何人:在将 `recursive-exclude test *` 添加到 MANIFEST.in 文件和 `["tests", "tests.txt" 后,我必须删除 *.egg-info 以及 build/ 目录的内容。 *"]` 排除。 (3认同)
  • 这很奇怪。你的回答为我解决了这个问题,我不得不在很长一段时间内尝试各种不同的解决方案 (2认同)