As of December the 14th, 2020, the pip search functionality has been disabled :
$ pip search cast ERROR: XMLRPC request failed [code: -32500] RuntimeError: PyPI's XMLRPC API is currently disabled due to unmanageable load and will be deprecated in the near future. See https://status.python.org/ for more information.
Alternatives
Here's a little tool called pip_search I've just found that does a simple search but it does the job.
This is pip_search v0.0.6 output:
$ pip_search pulsemixer ---------------- ------------------------------------------------------------------------------- Name Description pulsemixer pulsemixer - CLI and curses mixer for PulseAudio pulsectl-asyncio Asyncio frontend for the pulsectl Python bindings of libpulse pulsectl Python high-level interface and ctypes-based bindings for PulseAudio (libpulse) ---------------- -------------------------------------------------------------------------------
UPDATE
pip_search has been updated, each folder is a clickable (CTRL+click) URL for each project, now it looks like this:
$ pip_search pulsemixer 🐍 https://pypi.org/search/?q=pulsemixer 🐍 ┏━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ ┃ Package ┃ Version ┃ Released ┃ Description ┃ ┡━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩ │ 📂 pulsemixer │ 1.5.1 │ Apr 11, 2020 │ pulsemixer - CLI and curses mixer for PulseAudio │ │ 📂 pulsectl-asyncio │ 0.1.7 │ Jun 13, 2021 │ Asyncio frontend for the pulsectl Python bindings of libpulse │ │ 📂 pulsectl │ 21.5.18 │ May 22, 2021 │ Python high-level interface and ctypes-based bindings for PulseAudio (libpulse) │ └─────────────────────┴─────────┴──────────────┴─────────────────────────────────────────────────────────────────────────────────┘
To install it, just type:
pip install pip_search
There's also another tool that I've just tried called pypisearch.
To install it, just type: pip install pypisearch
And it works like this:
$ python -m pypisearch pulsemixer pulsemixer (1.5.1) [installed 1.5.0] pulsemixer - CLI and curses mixer for PulseAudio pulsectl-asyncio (0.1.5) Asyncio frontend for the pulsectl Python bindings of libpulse pulsectl (21.3.4) Python high-level interface and ctypes-based bindings for PulseAudio (libpulse)