首页 > 解决方案 > 无法从 https://packagecloud.io/ 安装我的自定义 pip 包

问题描述

我已经使用 python 创建了我的包。我正在尝试通过https://packagecloud.io/分发包。所以我构建 pip 包并在https://packagecloud.io/中更新

但是当我尝试在 Ubutbu 18.04 中安装相同的包时出现错误。

root@1522cdc94a23:/# pip3 install mycli==0.0.1a0
Collecting mycli==0.0.1a0
Exception:
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/pip/basecommand.py", line 215, in main
    status = self.run(options, args)
  File "/usr/lib/python3/dist-packages/pip/commands/install.py", line 353, in run
    wb.build(autobuilding=True)
  File "/usr/lib/python3/dist-packages/pip/wheel.py", line 749, in build
    self.requirement_set.prepare_files(self.finder)
  File "/usr/lib/python3/dist-packages/pip/req/req_set.py", line 380, in prepare_files
    ignore_dependencies=self.ignore_dependencies))
  File "/usr/lib/python3/dist-packages/pip/req/req_set.py", line 554, in _prepare_file
    require_hashes
  File "/usr/lib/python3/dist-packages/pip/req/req_install.py", line 278, in populate_link
    self.link = finder.find_requirement(self, upgrade)
  File "/usr/lib/python3/dist-packages/pip/index.py", line 465, in find_requirement
    all_candidates = self.find_all_candidates(req.name)
  File "/usr/lib/python3/dist-packages/pip/index.py", line 423, in find_all_candidates
    for page in self._get_pages(url_locations, project_name):
  File "/usr/lib/python3/dist-packages/pip/index.py", line 568, in _get_pages
    page = self._get_page(location)
  File "/usr/lib/python3/dist-packages/pip/index.py", line 683, in _get_page
    return HTMLPage.get_page(link, session=self.session)
  File "/usr/lib/python3/dist-packages/pip/index.py", line 795, in get_page
    resp.raise_for_status()
  File "/usr/share/python-wheels/requests-2.18.4-py2.py3-none-any.whl/requests/models.py", line 935, in raise_for_status
    raise HTTPError(http_error_msg, response=self)
requests.exceptions.HTTPError: 404 Client Error: Not Found for url: https://pypi.org/simple/mycli/

验证 ~/.pip/pip.conf 中的 extra-index-url 参数。它有 packagecloud.in 网址

根据建议添加了 --index-url 。是的。它正在工作。但是另一个默认示例包(来自 packagecloud.io)在没有 --index-url 的情况下按预期工作

~$ cat ~/.pip/pip.conf
[global]
extra-index-url=https://<token>:@packagecloud.io/sivak/MyTest/pypi/simple

packagecloud_test-0.9.7b1.tar.gz是 packagecloud.io 提供的测试包,用于测试。

标签: pythonpython-3.xpippackagecloud.io

解决方案


默认情况下,pip 在 pypi.org 上搜索包。

只需告诉 pip 在另一个存储库中搜索:

pip install --index-url https://packagecloud.io/ mycli==0.0.1a0

尝试这样做可能会确认您的pip.conf文件中存在 pip 配置问题。


推荐阅读