为什么 pip search 找不到某些软件包,而它们仍然可以通过 pip install 安装

Why pip search can't find certain packages while they can be installed via pip install anyway

为什么 pip search 找不到某些软件包(例如,html5lib),而它们仍然可以通过 pip install 安装?

E:\software\Python276\Scripts>pip search html5lib
html5lib-truncation       - Truncating HTML with html5lib filter
HTML-Sanitizer-With-IFrame - Extends Python html5lib's sanitizer.HTMLSanitizer
                            to allow iframe elements.
microdata                 - html5lib extension for parsing microdata
html5tidy                 - Simple wrapper around html5lib & lxml.etree to
                            "tidy" html in the wild to well-formed xml/html

E:\software\Python276\Scripts>pip install html5lib
Downloading/unpacking html5lib
  Running setup.py (path:c:\users\user\appdata\local\temp\pip_build_user\html5lib\setup.py) egg_info for package html5lib

Requirement already satisfied (use --upgrade to upgrade): six in e:\software\python276\lib\site-packages (from html5lib)
Installing collected packages: html5lib
  Running setup.py install for html5lib

Successfully installed html5lib
Cleaning up...

html5lib 是 hidden in pypi.python.org,所以它不会出现在搜索结果中,但仍然可以直接访问:

    "_pypi_hidden": true, 

我不知道为什么这个包被隐藏(它只是数据库字段中的一个标志)但我强烈怀疑它是由包的奇怪版本控制系统引起的(最近的第一个):

  • 0.9999999/1.0b8
  • 0.999999/1.0b7
  • [...]
  • 0.99 从 1.0b3 开始没有库更改;作为 0.99 发布,因为 pip 已经从 1.4 改变了行为以避免根据 PEP 440 安装预发布版本。
  • 1.0b3
  • [...]

解决方法是发布一个适当的 1.0 版本,该版本将显示在 beta 版本之上,并希望重置隐藏的标志。