相关疑难解决方法(0)

从setuptools包中排除顶级目录

我正在尝试使用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)

python setuptools

23
推荐指数
6
解决办法
2万
查看次数

使用setup.py构建滚轮时是否可以排除某些文件?

我知道您可以使用以下方法排除某些包:

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来做.

python setuptools

9
推荐指数
2
解决办法
7028
查看次数

如何从 pyproject.toml 托管库的轮子中排除“tests”文件夹?

我尽力从setup.py托管库转移到纯pyproject.toml库。\n我有以下文件夹结构:

\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\n
Run Code Online (Sandbox Code Playgroud)\n

在我的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\n
Run Code Online (Sandbox Code Playgroud)\n

在生产轮中,我得到以下信息:

\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>\nsepal_ui.egg-info\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 top-level.txt\n
Run Code Online (Sandbox Code Playgroud)\n

查看 top-level.txt,我发现只包含 sepal_ui,所以我的问题很简单,为什么即使不使用额外的“docs”和“tests”文件夹,仍然包含它们?如何摆脱它们?

\n

PS:我知道 MANIFEST.in 解决方案,如果它确实是唯一的解决方案,我会接受它,但我发现在 2 个文件中指定是多余的。

\n

python setuptools pyproject.toml

7
推荐指数
1
解决办法
6955
查看次数

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

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

为此,我将其包含在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”的目录?

python setup.py

4
推荐指数
1
解决办法
715
查看次数

标签 统计

python ×4

setuptools ×3

pyproject.toml ×1

setup.py ×1