未知分发格式:'' 通过 Twine 上传到 PyPI 时
Unknown distribution format: '' when uploading to PyPI via Twine
我正在尝试使用 twine
更新 infixpy
的版本。这是我的 ~/.pypirc
:
index-servers =
pypi
pypitest
[pypi]
repository: https://upload.pypi.org/legacy/
username: myuser
password: mypassword
[pypitest]
repository: https://upload.testpypi.org/legacy
username: myuser
password: mypassword
命令行如下:
python setup.py build
twine upload -r pypi dist/
上传错误 InvalidDistribution: Unknown distribution format: ''
这是完整的输出:
Processing dependencies for infixpy==0.0.6
Finished processing dependencies for infixpy==0.0.6
Processing /Users/steve/git/infixpy
Building wheels for collected packages: infixpy
Building wheel for infixpy (setup.py) ... done
Created wheel for infixpy: filename=infixpy-0.0.6-py3-none-any.whl size=43459 sha256=01fed46f42fa86475079636a55685c93521989aa0ba6558726a9d35c01004b7a
Stored in directory: /private/var/folders/d6/m67jyndd7h754m3810cl3bpm0000gp/T/pip-ephem-wheel-cache-1bizg6_y/wheels/47/66/74/d79a56979feba04c8ef05e12fe861cacf813cecd397e57071f
Successfully built infixpy
Installing collected packages: infixpy
Attempting uninstall: infixpy
Found existing installation: infixpy 0.0.6
Uninstalling infixpy-0.0.6:
Successfully uninstalled infixpy-0.0.6
Successfully installed infixpy-0.0.6
Uploading distributions to https://upload.pypi.org/legacy/
InvalidDistribution: Unknown distribution format: ''
我的发布过程需要进行哪些更正?我在 macOS 上使用 Python 3.7。
像这样在 dist/ 之后添加 * : twine upload -r pypi dist/*
但是为什么?
因为 dist/ 是一个目录,它希望上传一个文件,而不是任何目录。
因此,文件将是 dist 文件夹
中的 all(*) 个文件
Per the docs for twine upload
(强调我的):
positional arguments:
dist The distribution <b>files</b> to upload to the repository
(package index). Usually dist/* . May additionally
contain a .asc file to include an existing signature
with the file upload.
您传递的是 目录 ,而不是 文件 - 正如文档所建议的,您可能需要 dist/*
。如果你传递一个目录,则没有已知分布的匹配项,因为这些是基于文件扩展名的,所以你最终会在 this error case:
else:
raise exceptions.InvalidDistribution(
"Unknown distribution format: '%s'" % os.path.basename(filename)
)
目录的 basename
是 ''
,因此输出不是那么有用。
我正在尝试使用 twine
更新 infixpy
的版本。这是我的 ~/.pypirc
:
index-servers =
pypi
pypitest
[pypi]
repository: https://upload.pypi.org/legacy/
username: myuser
password: mypassword
[pypitest]
repository: https://upload.testpypi.org/legacy
username: myuser
password: mypassword
命令行如下:
python setup.py build
twine upload -r pypi dist/
上传错误 InvalidDistribution: Unknown distribution format: ''
这是完整的输出:
Processing dependencies for infixpy==0.0.6
Finished processing dependencies for infixpy==0.0.6
Processing /Users/steve/git/infixpy
Building wheels for collected packages: infixpy
Building wheel for infixpy (setup.py) ... done
Created wheel for infixpy: filename=infixpy-0.0.6-py3-none-any.whl size=43459 sha256=01fed46f42fa86475079636a55685c93521989aa0ba6558726a9d35c01004b7a
Stored in directory: /private/var/folders/d6/m67jyndd7h754m3810cl3bpm0000gp/T/pip-ephem-wheel-cache-1bizg6_y/wheels/47/66/74/d79a56979feba04c8ef05e12fe861cacf813cecd397e57071f
Successfully built infixpy
Installing collected packages: infixpy
Attempting uninstall: infixpy
Found existing installation: infixpy 0.0.6
Uninstalling infixpy-0.0.6:
Successfully uninstalled infixpy-0.0.6
Successfully installed infixpy-0.0.6
Uploading distributions to https://upload.pypi.org/legacy/
InvalidDistribution: Unknown distribution format: ''
我的发布过程需要进行哪些更正?我在 macOS 上使用 Python 3.7。
像这样在 dist/ 之后添加 * : twine upload -r pypi dist/*
但是为什么?
因为 dist/ 是一个目录,它希望上传一个文件,而不是任何目录。 因此,文件将是 dist 文件夹
中的 all(*) 个文件Per the docs for twine upload
(强调我的):
positional arguments:
dist The distribution <b>files</b> to upload to the repository
(package index). Usually dist/* . May additionally
contain a .asc file to include an existing signature
with the file upload.
您传递的是 目录 ,而不是 文件 - 正如文档所建议的,您可能需要 dist/*
。如果你传递一个目录,则没有已知分布的匹配项,因为这些是基于文件扩展名的,所以你最终会在 this error case:
else:
raise exceptions.InvalidDistribution(
"Unknown distribution format: '%s'" % os.path.basename(filename)
)
目录的 basename
是 ''
,因此输出不是那么有用。