我正在尝试使用bdist_rpm从setup.py文件创建RPM时删除所有测试目录以及tests.py文件。我试过将它从find_packages()中排除,但它只删除了测试包,这只是问题的一半。任何tests.py文件都保留在没有tests目录的包中。如何删除测试目录和tests.py文件?这是我的setup.py
from setuptools import setup, find_packages
setup(name='mydjangoui',
version='1.0',
description='A django application',
package_dir={'':'mydjangoui'},
packages=find_packages('mydjangoui',
exclude=['tests.*', '*.tests.*', '*.tests', 'tests']),
)
我正在使用以下命令构建rpm:
python setup.py bdist_rpm
有一个app(marketing
)包含tests.py,tests.pyo,tests.pyc以及一些有效的models.py和views.py文件。我想在创建RPM之前从此应用程序中删除tests.py [o | c]文件。
find_packages(exclude=['*tests*'])
>>> find_packages(exclude=['*tests*'])
['motd', 'assessment', 'account', 'platform', 'custom', 'catalog', 'utils', 'asset', 'editors', 'scheduler', 'base', 'marketing', 'results']
答案 0 :(得分:1)
解决问题的最终更新:
使用以下find_packages()
调用忽略名为tests
的任何模块或子模块:
setup(name='mydjangoapp',
version='1.0',
description='A django app',
package_dir={'':'mock'},
packages=find_packages('mock', exclude=['tests', '*.tests']),
)
我们可能仍然在我们生成的RPM中有名为tests.py
的文件。
要清除这些文件,请在项目文件夹中创建一个名为MANIFEST.in
的文件,并在其中添加以下行,告诉distutils
忽略任何文件夹中名为tests.py
的文件:
recursive-exclude * tests.py
这不再包括,例如marketing/tests.py
。
如果您收到有关不存在的,先前定义的文件的警告,请在重新创建RPM软件包之前清理生成的文件:
python setup.py clean --all
希望有所帮助。