上传到 PyPi 返回无效的 URI

Posted

技术标签:

【中文标题】上传到 PyPi 返回无效的 URI【英文标题】:uploading to PyPi returning Invalid URI 【发布时间】:2020-09-24 04:36:08 【问题描述】:

我正在尝试将我的包上传到 PyPi 并不断收到此错误:

 HTTPError: 400 Client Error: 'github.com/Palashio/Libra' is an invalid value for Home-Page. Error: Invalid URI See https://packaging.python.org/specifications/core-metadata for url: https://test.pypi.org/legacy/

我正在使用本教程:https://packaging.python.org/tutorials/packaging-projects/#uploading-your-project-to-pypi

当我运行这一行时会发生这种情况:

python3 -m twine upload --repository testpypi dist/*

输入 __ token __ 作为用户名,输入 test.pypi.org 生成的令牌作为密码

这是我的目录包含的内容:build、dist、reponame(其中包含所有包文件)、reponame.eggs-info、LICENSE.txt、README.md、setup.cfg 和 setup.py

这就是我的 setup.py 文件的样子:

import setuptools

with open("README.md", "r") as fh:
    long_description = fh.read()

setuptools.setup(
    name="libradocs", # Replace with your own username
    version="0.0.0",
    author="username-from-test.pypi",
    author_email="author@example.com",
    description="A small example package",
    long_description=long_description,
    long_description_content_type="text/markdown",
    homepage="https://github.com/Palashio/Libra",
    packages=setuptools.find_packages(),
    classifiers=[
        "Programming Language :: Python :: 3",
        "License :: OSI Approved :: MIT License",
        "Operating System :: OS Independent",
    ],
    python_requires='>=3.6',
)

在 reponame 文件夹中,我有 5 个不同的文件夹,具有我希望用户能够使用的不同文件和功能。我在 Libra 的根目录和每个子文件夹中都放置了空白的 init.py 文件。

【问题讨论】:

你的错误没有报错中的https。这是正确的还是您在删除身份时忘记复制它? 是的,我忘了。我只是把真实的信息放回去了。 你的仓库是私有的吗?它必须是公开的。 我作为主页包含的链接= github.com/Palashio/Libra 应该会将您发送到公共回购。 确实如此。很酷的图书馆,如果答案有帮助,请告诉我。 【参考方案1】:

homepage 参数已被弃用。用url 替换它,你应该会很好。 docs 中的示例也遵循此格式。

【讨论】:

我刚试过;得到同样的错误。也许这是 init.py 文件的放置问题?我有一个主 libradocs 文件夹,其中包含我上面提到的所有信息的另一个 libradocs 文件夹。在里面我有一个 init.py 文件,然后是 5 个文件夹,每个文件夹都有自己的空白 init.py 文件。 @PalashShah 有趣.. 不,这不重要。我的包中充满了头文件,而我的实际模块是嵌套的。一些 repos 也链接到一个网站。 Pip 不解析 URL,它是供用户访问文档的。您可以尝试将整个 URL 小写吗? 同样的结果。私聊? @PalashShah SO 建议不要使用 PM。我相信这只是一个愚蠢的错误。我会休息一下,然后回来逐行检查文档中的设置。请将您的结果发布给未来的成员。 我只是复制了文档并修改了名称和网址。不知道哪里出了问题。【参考方案2】:

刚刚开始工作。确保您的名称与您在 test.pypi 在线站点上创建的令牌名称相同。还要确保你没有创建一个已经存在的 PyPi 包。

【讨论】:

以上是关于上传到 PyPi 返回无效的 URI的主要内容,如果未能解决你的问题,请参考以下文章

Swift - Alamofire 返回“无效的请求格式”。当我尝试将文件上传到 pinata

Action.Picker 返回无效/错误的 Uri(如何从多个选取的图库 img 中获取路径或字节 [])

$_SERVER['REQUEST_URI'] 不返回服务器名

Nestjs 中的 Graphql Apollo 上传返回无效值

Uri.TryCreate 为任何字符串值返回 true?

无法将 facebook 个人资料图片 (Uri) 上传到 Firebase 存储