删除 python 构建源存档中的父目录
Remove parent directories in python build source archive
我的 python 包有以下设置:
my_package
┣ src
┃ ┗ __init__.py
┣ setup.cfg
┗ pyproject.toml
__init__.py
为空,pyproject.toml
和 setup.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
文件包含我本地计算机上的路径,这显然对隐私不太友好。我绝对不想上传包含有关我的私人文件树结构信息的文件。我想,这也不是故意的。另外,据我所知,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
为空。
我将 python 更新到 3.9 版,现在一切正常。我试图在官方 GitHub 存储库中查找问题,但没有找到。不过,这是一个非常奇怪的行为。
我的 python 包有以下设置:
my_package
┣ src
┃ ┗ __init__.py
┣ setup.cfg
┗ pyproject.toml
__init__.py
为空,pyproject.toml
和 setup.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
文件包含我本地计算机上的路径,这显然对隐私不太友好。我绝对不想上传包含有关我的私人文件树结构信息的文件。我想,这也不是故意的。另外,据我所知,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
为空。
我将 python 更新到 3.9 版,现在一切正常。我试图在官方 GitHub 存储库中查找问题,但没有找到。不过,这是一个非常奇怪的行为。