Python 打包:从 bdist_wheel 中排除目录

Ban*_*ach 6 python setuptools python-wheel

我有以下项目结构:

\n\n
.\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 docs\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 examples\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 MANIFEST.in\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 README.rst\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 setup.cfg\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 setup.py\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 myproject\n
Run Code Online (Sandbox Code Playgroud)\n\n

我想将我的项目捆绑到一个轮子中。为此,我使用以下内容setup.py:

\n\n
#!/usr/bin/env python\n\nfrom setuptools import setup, find_packages\n\nsetup(name=\'myproject\',\n      version=\'1.0\',\n      description=\'Great project\'\n      long_description=open(\'README.rst\').read(),\n      author=\'Myself\'\n      packages=find_packages(exclude=[\'tests\',\'test\',\'examples\'])\n     )\n
Run Code Online (Sandbox Code Playgroud)\n\n

运行时python setup.py bdist_wheel,该examples目录包含在轮子中。我该如何防止这种情况?

\n\n

根据

\n\n

从 setuptools 包中排除顶级目录

\n\n

我希望这examples被排除在外。

\n

Ban*_*ach 3

我通过使用后缀星号解决了这个问题,examples*即:

find_packages(exclude=['*tests','examples*'])
Run Code Online (Sandbox Code Playgroud)

(请注意,我正在'*tests'用前导星号进行编写,因为我在每个代码包中都有测试包,如 中所示 myproject.mypackage.tests。不知何故,如果已经有前缀星号,则后缀星号似乎是不必要的)