我正在尝试使用setuptools将Python项目放入tarball中.问题是setuptools似乎不喜欢源树最初设置的方式(不是我,我必须添加).我实际想要分发的所有内容都在顶级目录中,而不是像setuptools docs谈论的子目录中那样.
树有一个目录,tests
我不想在已发布的包中拥有该目录.然而,使用exclude_package_data
似乎并没有实际排除,我想弄清楚我做错了什么.
我setup.py
看起来像这样,在相关部分:
setup( name="project", packages=[''], include_package_data=True, exclude_package_data={'': ['tests']}, test_suite='nose.collector', )
小智.. 19
我们使用以下约定从包中排除'tests'.
setup( name="project", packages=find_packages(exclude=("tests",)), include_package_data=True, test_suite='nose.collector', )
我们还使用MANIFEST.in来更好地控制include_package_data=True
它的作用.
我们使用以下约定从包中排除'tests'.
setup( name="project", packages=find_packages(exclude=("tests",)), include_package_data=True, test_suite='nose.collector', )
我们还使用MANIFEST.in来更好地控制include_package_data=True
它的作用.
我在setup.py
...中有以下内容
setup(name='pyfoo', version="1.0.2", description='Example for stack overflow', url='http://stackoverflow.com/', author='David Michael Pennington', author_email='mike /|at|\ pennington.net', license='GPL', platforms='any', keywords='Stack Overflow Example', entry_points = "", long_description=read('README.rst'), include_package_data=True, # Checks MANIFEST.in for explicit rules # ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ packages=find_packages(), use_2to3=True, zip_safe=False, setup_requires=["setuptools_hg"],
doc/
由于我的图像数量,我的目录变得越来越大; 这意味着我的体型sdist
增长超过500kB.原来我在我的MANIFEST.in
...
include LICENSE CHANGES README.rst requirements.txt recursive-exclude * __pycache__ recursive-exclude * *.pyc recursive-exclude * *.pyo recursive-exclude * *.orig
我要排除我的doc目录的唯一办法就是MANIFEST.in
...
prune doc*
使用prune doc*
突然doc/
从sdist
tarball中删除了我的所有目录.所以,看起来你只需要在MANIFEST.in
文件中使用它...
prune tests*
这是我在setuptools手册中找到的:
from setuptools import setup, find_packages ... packages = find_packages(exclude=["*.tests", "*.tests.*", "tests.*", "tests"]),
在我的情况下,以下内容足以排除顶级测试目录:
packages = find_packages(exclude=["tests.*", "tests"]),