【问题标题】:Uploading to pypi, and downloading with pip上传到pypi,用pip下载
【发布时间】:2012-04-23 20:22:15
【问题描述】:

我写了一个小工具,上传到pypi(here),但是用pip下载不了。这是点子日志:

------------------------------------------------------------
c:\python32\scripts\pip-script.py run on 04/11/12 15:53:45
Downloading/unpacking undo

  Getting page http://pypi.python.org/simple/undo
  Could not fetch URL http://pypi.python.org/simple/undo: HTTP Error 301: Moved Permanently - Redirection to url '/simple/undo/' is not allowed
  Will skip URL http://pypi.python.org/simple/undo when looking for download links for undo
  Getting page http://pypi.python.org/simple/
  Real name of requirement undo is undo

  URLs to search for versions for undo:
  * http://pypi.python.org/simple/undo/
  Getting page http://pypi.python.org/simple/undo/
  Getting page http://bitbucket.org/aquavitae/undo
  Analyzing links from page http://pypi.python.org/simple/undo/
    Skipping link http://bitbucket.org/aquavitae/undo (from http://pypi.python.org/simple/undo/); not a file
    Could not parse version from link: https://bitbucket.org/aquavitae/undo/get/latest.tar.gz (from http://pypi.python.org/simple/undo/)
    Skipping link https://bitbucket.org/aquavitae/undo/get/latest.tar.gz (from http://pypi.python.org/simple/undo/); wrong project name (not undo)
  Could not find any downloads that satisfy the requirement undo

No distributions at all found for undo

Exception information:
Traceback (most recent call last):
  File "C:\python32\lib\site-packages\pip\basecommand.py", line 104, in main
    status = self.run(options, args)
  File "C:\python32\lib\site-packages\pip\commands\install.py", line 245, in run
    requirement_set.prepare_files(finder, force_root_egg_info=self.bundle, bundle=self.bundle)
  File "C:\python32\lib\site-packages\pip\req.py", line 978, in prepare_files
    url = finder.find_requirement(req_to_install, upgrade=self.upgrade)
  File "C:\python32\lib\site-packages\pip\index.py", line 157, in find_requirement
    raise DistributionNotFound('No distributions at all found for %s' % req)
pip.exceptions.DistributionNotFound: No distributions at all found for undo

谁能看出我哪里出错了?我在代理后面,虽然这可能是问题,但 pip 与其他包没有问题,只是这个,所以我假设我以某种方式将它打包错了。

【问题讨论】:

  • pip 会跳过 https 链接吗?您是否尝试使用 http 链接?

标签: python package pip distutils pypi


【解决方案1】:

https 中的 bitbucket 链接仅在您通过身份验证时有效。请改用 bitbucket 上的 http 链接。

(pypi 页面中两个网站/问题跟踪链接的问题相同,如果不先登录,我将无法访问它)

编辑:http链接重定向到登录页面,登录后得到:

您无权访问此存储库。

【讨论】:

  • pip 获取的 https 链接甚至不在 pypi 上——那是不久前的事了,但当我意识到它是 https 并且名称格式错误时,我删除了它。 Pip 应该只在 pypi 上下载 tar.gz 文件。看来我将 bitbucket 存储库设为私有,所以当我下次使用计算机时,我会更正这一点,但它不应该影响从 pypi 下载。
【解决方案2】:

有多个问题:您的 tar 文件中没有包名('undo' 不是 'latest.tar.gz' 的子字符串);并且 pypi 出于某种原因想要重定向(这似乎不正常,所以我不会进入那个)。

通常 pip 首先查看与您的包名称匹配的所有 url,无论是在主页上还是在 pypi 在http://pypi.python.org/simple/undo/ 上提供的下载页面上(假设您同时指定了两者)。分析那些页面上包含项目名称的任何 url。

有几件事让 pip 拒绝一个 url:

Skipping link http://bitbucket.org/aquavitae/undo (from http://pypi.python.org/simple/undo/); not a file

这个 url 里面有 undo 但它没有指向一个文件。

Could not parse version from link: https://bitbucket.org/aquavitae/undo/get/latest.tar.gz (from http://pypi.python.org/simple/undo/)

latest.tar.gz中没有版本号

Skipping link https://bitbucket.org/aquavitae/undo/get/latest.tar.gz (from http://pypi.python.org/simple/undo/); wrong project name (not undo)

文件组件中没有项目名称undo

现在可以工作是因为https://bitbucket.org/aquavitae/undo/downloads 是可访问的,并且在其中的文件名部分有3 个带有撤消的链接,还有很多很多没有的链接。使用:

pip install undo --no-install --log undo.log

并查看undo.log 文件。

请注意,pip 使用来自 pkg_resources(在 dist_packages 中)的函数 parse_versions 来确定可用的最新版本。因此,即使您在 pypi 下载链接上明确指定 undo-1.1.tar.gz 为版本,如果您的主页也指向较新的版本,例如 undo-1.2-dev-20120614,则后者被视为已找到。

【讨论】:

    【解决方案3】:

    您可能需要使用以 latest.tar.gz#egg=undo 之类结尾的链接

    【讨论】:

      【解决方案4】:

      我不知道它是 pip 中的错误还是故意的,但是一旦我打开 bitbucket 站点它就可以工作,尽管它需要下载(并且确实下载)的实际文件托管在 pypi 上。所以如果其他人有这个问题,解决方案是确保 pypi 页面上的所有链接都可以访问,即使它们不托管下载文件。

      【讨论】:

        【解决方案5】:

        setup.pydownload_url 更改为https://bitbucket.org/aquavitae/undo/get/undo-0.5.1.tar.gz

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2013-11-09
          • 2020-05-03
          • 2013-03-04
          • 2018-03-18
          • 2018-07-26
          • 2019-10-01
          • 2020-04-21
          相关资源
          最近更新 更多