gpt4 book ai didi

python - 删除 python 构建源存档中的父目录

转载 作者:行者123 更新时间:2023-12-05 05:56:30 24 4
gpt4 key购买 nike

我的 python 包有以下设置:

📦my_package
┣ 📂src
┃ ┗ 📜__init__.py
┣ 📜setup.cfg
┗ 📜pyproject.toml

__init__.py 为空,pyproject.tomlsetup.cfg 包含来自 PyPi documentation page 的示例输出(内容如下)。

现在,为了上传到 PyPi 和打包 python 项目,我运行命令

python -m build

这为我提供了一个包含 Test-0.0.0.tar.gz 的新目录 dist(在 my_package 中)。这一切都在意料之中。但是当我打开 Test-0.0.0.tar.gz 时,我得到以下内容:

📦Test-0.0.0.tar.gz
┗ 📂C:
┗ 📂path
┗ 📂to
┗ 📂my
┗ 📂dev-directory
┗ 📂my_package
┗ 📂dist
┗ 📂tmp<some other characters>
┗ 📜Test-0.0.0.tar

如您所见,.tar.gz 文件包含我本地计算机上的路径,这显然对隐私不太友好。我绝对不想上传包含有关我的私有(private)文件树结构信息的文件。我想,这也不是故意的。另外,据我所知,gzip 不允许直接压缩目录。

所以我的问题是:我在构建过程中做错了什么?

PS:正如您可能已经通过文档树猜到的那样,我正在 Windows 上进行开发——这可能很重要。我的 Python 版本是 3.7.1,通过 Miniconda3 安装。


文件内容:

pyproject.toml

[build-system]
requires = [
"setuptools>=42",
"wheel"
]
build-backend = "setuptools.build_meta"

设置.cfg

[metadata]
name=Test

[options]
package_dir =
= src

__init__.py 是空的。

最佳答案

我自己偶然发现了这个问题,我很想知道为什么 Python 升级可以解决这个问题。该问题是以下票证中概述的 Python 错误的结果:

tarfile: Do not write full path in FNAME field
https://github.com/python/cpython/issues/85488

这似乎已在以下 Python 解释器中得到纠正:

PyPA build 上有一些票在讨论这个问题,例如 https://github.com/pypa/build/issues/255 .据我了解,官方的解决方案似乎只是升级 Python 解释器。有迹象表明 tarfile 的向后移植应该有助于模块处理较旧的解释器,但目前看来还没有计划。

关于python - 删除 python 构建源存档中的父目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69150372/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com