【问题标题】:uploading to PyPi returning Invalid URI上传到 PyPi 返回无效的 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 应该会将您发送到公共回购。
  • 确实如此。很酷的图书馆,如果答案有帮助,请告诉我。

标签: python github pip setuptools pypi


【解决方案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 包。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-12-11
    • 2018-06-11
    • 2018-07-26
    • 2018-03-18
    • 2018-10-10
    • 2014-11-27
    • 2017-12-25
    相关资源
    最近更新 更多