删除 python 构建源存档中的父目录
Posted
技术标签:
【中文标题】删除 python 构建源存档中的父目录【英文标题】:Remove parent directories in python build source archive 【发布时间】:2021-11-08 00:28:25 【问题描述】:我的 python 包有以下设置:
????my_package
┣ ????src
┃ ┗ ????__init__.py
┣ ????setup.cfg
┗ ????pyproject.toml
__init__.py
为空,pyproject.toml
和setup.cfg
包含来自PyPi documentation page 的示例输出(内容如下所示)。
现在,为了上传到 PyPi 和打包 python 项目,我运行命令
python -m build
这给了我一个新目录dist
(在my_package
),其中包含Test-0.0.0.tar.gz
。这一切都在意料之中。但是当我打开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
文件包含我本地计算机上的路径,显然这对隐私不太友好。我绝对不想上传包含有关我的私有文件树结构信息的文件。我想,这也不是故意的。另外,据我所知,gzip
不允许直接压缩目录。
所以我的问题是:我在构建过程中做错了什么?
PS:正如您可能已经从文档树中猜到的那样,我正在 Windows 上进行开发——这可能很重要。我的 Python 版本是 3.7.1,通过 Miniconda3 安装。
文件内容:
pyproject.toml
[build-system]
requires = [
"setuptools>=42",
"wheel"
]
build-backend = "setuptools.build_meta"
setup.cfg
[metadata]
name=Test
[options]
package_dir =
= src
__init__.py
为空。
【问题讨论】:
【参考方案1】:我将我的 python 更新到 3.9 版,现在一切正常。我试图在官方 GitHub 存储库上查找问题,但没有找到。不过,这是一种非常奇怪的行为。
【讨论】:
以上是关于删除 python 构建源存档中的父目录的主要内容,如果未能解决你的问题,请参考以下文章