¿Cómo enumerar todas las versiones de paquetes disponibles con pip?
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.
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 blork
puede haber cualquier cadena que no sea un número de versión válido .
(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
yolk3k
es una bifurcación del original yolk
que dejó de desarrollarse en 2012 . Aunque yolk
ya no se mantiene (como se indica en los comentarios a continuación), yolk3k
parece 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.
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