我正在尝试使用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',
)
Run Code Online (Sandbox Code Playgroud) 我知道您可以使用以下方法排除某些包:
packages = find_packages("src", exclude=["test"]),
Run Code Online (Sandbox Code Playgroud)
是否也可以排除单个python文件?我正在构建一个二进制轮,并希望排除我使用自定义函数"cythonized"的某些源文件:
python cythonize bdist_wheel
Run Code Online (Sandbox Code Playgroud)
目前,在使用自定义脚本构建滚轮后,我删除了所有也有.so库文件的python文件,我想用setup.py来做.
我尽力从setup.py托管库转移到纯pyproject.toml库。\n我有以下文件夹结构:
tests\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 <files>\ndocs\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 <files>\nsepal_ui\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 <files>\npyproject.toml\nRun Code Online (Sandbox Code Playgroud)\n在我的pyproject.toml以下文件和包发现设置中:
tests\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 <files>\ndocs\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 <files>\nsepal_ui\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 <files>\npyproject.toml\nRun Code Online (Sandbox Code Playgroud)\n在生产轮中,我得到以下信息:
\ntests\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 <files>\ndocs\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 <files>\nsepal_ui\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 <files>\nsepal_ui.egg-info\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 top-level.txt\nRun Code Online (Sandbox Code Playgroud)\n查看 top-level.txt,我发现只包含 sepal_ui,所以我的问题很简单,为什么即使不使用额外的“docs”和“tests”文件夹,仍然包含它们?如何摆脱它们?
\nPS:我知道 MANIFEST.in 解决方案,如果它确实是唯一的解决方案,我会接受它,但我发现在 2 个文件中指定是多余的。
\n我正在打包我的源代码,但我不想包含测试和文档,因为它太大了。
为此,我将其包含在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”的目录?