Skip to content

Instantly share code, notes, and snippets.

@trinitronx
Created February 7, 2017 17:50
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save trinitronx/026574839d96a0c0efe1e9f2fd300f03 to your computer and use it in GitHub Desktop.
Save trinitronx/026574839d96a0c0efe1e9f2fd300f03 to your computer and use it in GitHub Desktop.
Pip list all versions of a package that are available
import json
import urllib2
from distutils.version import StrictVersion
from distutils.version import LooseVersion
def versions(package_name):
url = "https://pypi.python.org/pypi/%s/json" % (package_name,)
data = json.load(urllib2.urlopen(urllib2.Request(url)))
versions = data["releases"].keys()
try:
versions.sort(key=StrictVersion)
except ValueError as e:
if 'invalid version number' in str(e):
versions.sort(key=LooseVersion)
else:
raise e
return versions
print "\n".join(versions("Jinja2"))
@sankalp-khare
Copy link

Thanks for this! :)

@sunshine69
Copy link

Thanks from me as well 😃

@DrLuke
Copy link

DrLuke commented Apr 17, 2019

Thanks, very useful!

@Axel-Erfurt
Copy link

for python3

import json
import requests

def versions(package_name):
    url = "https://pypi.python.org/pypi/%s/json" % (package_name,)
    text = requests.get(url).content
    data = json.loads(text)
    versions = data["releases"].keys()
    return versions

print ("\n".join(versions("Jinja2")))```

@mariomelofilho
Copy link

Thanks!
Also for python3 version.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment