¿Cómo enumerar todas las versiones de paquetes disponibles con pip?

Resuelto Amandasaurus asked hace 13 años • 30 respuestas

Dado el nombre de un paquete de Python que se puede instalar con pip , ¿hay alguna forma de encontrar una lista de todas las versiones posibles que pip podría instalar? Ahora es prueba y error.

Estoy intentando instalar una versión para una biblioteca de terceros, pero la versión más nueva es demasiado nueva y se realizaron cambios incompatibles con versiones anteriores. Así que me gustaría tener de alguna manera una lista de todas las versiones que pip conoce, para poder probarlas.

Amandasaurus avatar Feb 03 '11 22:02 Amandasaurus
Aceptado

Para pip >= 21,2 utilice:

pip index versions pylibmc

Tenga en cuenta que este comando es experimental y podría cambiar en el futuro.

Para pip >= 21.1 use:

pip install pylibmc==

Para pip >= 20,3 utilice:

pip install --use-deprecated=legacy-resolver pylibmc==

Para pip >= 9.0 use:

$ pip install pylibmc==
Collecting pylibmc==
  Could not find a version that satisfies the requirement pylibmc== (from 
  versions: 0.2, 0.3, 0.4, 0.5.1, 0.5.2, 0.5.3, 0.5.4, 0.5.5, 0.5, 0.6.1, 0.6, 
  0.7.1, 0.7.2, 0.7.3, 0.7.4, 0.7, 0.8.1, 0.8.2, 0.8, 0.9.1, 0.9.2, 0.9, 
  1.0-alpha, 1.0-beta, 1.0, 1.1.1, 1.1, 1.2.0, 1.2.1, 1.2.2, 1.2.3, 1.3.0)
No matching distribution found for pylibmc==

Las versiones disponibles se imprimirán sin descargar ni instalar ningún paquete.

Para pip < 9,0 utilice:

pip install pylibmc==blork

donde blorkpuede haber cualquier cadena que no sea un número de versión válido .

Chris Montanaro avatar Oct 30 '2014 22:10 Chris Montanaro

(actualización: a partir de marzo de 2020, muchas personas han informado que yema, instalada a través de pip install yolk3k, solo devuelve la última versión. La respuesta de Chris parece tener la mayor cantidad de votos positivos y funcionó para mí)

El script en Pastebin funciona. Sin embargo, no es muy conveniente si trabaja con múltiples entornos/hosts porque tendrá que copiarlo/crearlo cada vez.

Una mejor solución general sería utilizar yok3k , que está disponible para instalar con pip. Por ejemplo, para ver qué versiones de Django están disponibles:

$ pip install yolk3k
$ yolk -V django
Django 1.3
Django 1.2.5
Django 1.2.4
Django 1.2.3
Django 1.2.2
Django 1.2.1
Django 1.2
Django 1.1.4
Django 1.1.3
Django 1.1.2
Django 1.0.4

yolk3kes una bifurcación del original yolkque dejó de desarrollarse en 2012 . Aunque yolkya no se mantiene (como se indica en los comentarios a continuación), yolk3kparece ser compatible con Python 3.

Nota: no participo en el desarrollo de yok3k. Si algo no parece funcionar como debería, dejar un comentario aquí no debería hacer mucha diferencia. Utilice el rastreador de problemas de yolk3k en su lugar y considere enviar una solución, si es posible.

m000 avatar Mar 24 '2011 16:03 m000

No necesita un paquete de terceros para obtener esta información. pypi proporciona fuentes JSON simples para todos los paquetes bajo

https://pypi.org/pypi/{PKG_NAME}/json

Aquí hay algo de código Python que usa solo la biblioteca estándar que obtiene todas las versiones.

import requests
from distutils.version import LooseVersion

def versions(package_name, limit_releases=10):
    url = f"https://pypi.org/pypi/{package_name}/json"
    data = requests.get(url).json()
    versions = list(data["releases"].keys())
    versions.sort(key=LooseVersion, reverse=True)
    return versions[:limit_releases]

print("\n".join(versions("typeguard")))

Ese código se imprime (a partir del 21 de julio de 2023):

4.0.0rc6
4.0.0rc5
4.0.0rc4
4.0.0rc3
4.0.0rc2
4.0.0rc1
4.0.0
3.0.2
3.0.1
3.0.0rc2
eric chiang avatar Dec 02 '2014 00:12 eric chiang