diff --git a/var/spack/repos/builtin/packages/py-bottleneck/package.py b/var/spack/repos/builtin/packages/py-bottleneck/package.py
new file mode 100644
index 0000000000000000000000000000000000000000..0aa4208b4de378a6fa4ffaa1a2409bece47ca20a
--- /dev/null
+++ b/var/spack/repos/builtin/packages/py-bottleneck/package.py
@@ -0,0 +1,14 @@
+from spack import *
+
+class PyBottleneck(Package):
+    """Bottleneck is a collection of fast NumPy array functions written in Cython."""
+    homepage = "https://pypi.python.org/pypi/Bottleneck/1.0.0"
+    url      = "https://pypi.python.org/packages/source/B/Bottleneck/Bottleneck-1.0.0.tar.gz"
+
+    version('1.0.0', '380fa6f275bd24f27e7cf0e0d752f5d2')
+
+    extends('python', ignore=r'bin/f2py$')
+    depends_on('py-numpy')
+
+    def install(self, spec, prefix):
+        python('setup.py', 'install', '--prefix=%s' % prefix)
diff --git a/var/spack/repos/builtin/packages/py-dateutil/package.py b/var/spack/repos/builtin/packages/py-dateutil/package.py
index 0a17f2f2d249f4d0c16fad0dd6dc4e784d7cd21c..b67e91ace605ebf17adb6a8ac6e9684db49c741b 100644
--- a/var/spack/repos/builtin/packages/py-dateutil/package.py
+++ b/var/spack/repos/builtin/packages/py-dateutil/package.py
@@ -7,6 +7,7 @@ class PyDateutil(Package):
 
     version('2.4.0', '75714163bb96bedd07685cdb2071b8bc')
     version('2.4.2', '4ef68e1c485b09e9f034e10473e5add2')
+    version('2.5.2', 'eafe168e8f404bf384514f5116eedbb6')
 
     extends('python')
     depends_on('py-setuptools')
diff --git a/var/spack/repos/builtin/packages/py-matplotlib/package.py b/var/spack/repos/builtin/packages/py-matplotlib/package.py
index 2167735fb89b78f1282261c0ea1f57d82e68f9a1..45e77dd6313d0fbbc24758c79d17be256a10b8f5 100644
--- a/var/spack/repos/builtin/packages/py-matplotlib/package.py
+++ b/var/spack/repos/builtin/packages/py-matplotlib/package.py
@@ -12,7 +12,7 @@ class PyMatplotlib(Package):
     variant('gui', default=False, description='Enable GUI')
     variant('ipython', default=False, description='Enable ipython support')
 
-    extends('python', ignore=r'bin/nosetests.*$|bin/pbr$')
+    extends('python', ignore=r'bin/nosetests.*$|bin/pbr$|bin/f2py$')
 
     depends_on('py-pyside', when='+gui')
     depends_on('py-ipython', when='+ipython')
diff --git a/var/spack/repos/builtin/packages/py-nose/package.py b/var/spack/repos/builtin/packages/py-nose/package.py
index 4fee99098ed957a1cf1352a830b4c06d1f7d2421..c2c2b52e03e86bcf35e516f47012ea3feac28803 100644
--- a/var/spack/repos/builtin/packages/py-nose/package.py
+++ b/var/spack/repos/builtin/packages/py-nose/package.py
@@ -10,6 +10,7 @@ class PyNose(Package):
 
     version('1.3.4', '6ed7169887580ddc9a8e16048d38274d')
     version('1.3.6', '0ca546d81ca8309080fc80cb389e7a16')
+    version('1.3.7', '4d3ad0ff07b61373d2cefc89c5d0b20b')
 
     extends('python', ignore=r'bin/nosetests.*$')
     depends_on('py-setuptools')
diff --git a/var/spack/repos/builtin/packages/py-numexpr/package.py b/var/spack/repos/builtin/packages/py-numexpr/package.py
index 89f8a525b12f5abe27d24c69b5ba2ec01ab1096d..081a79dec685a115ff2d419eb9c34145bc3d791f 100644
--- a/var/spack/repos/builtin/packages/py-numexpr/package.py
+++ b/var/spack/repos/builtin/packages/py-numexpr/package.py
@@ -7,8 +7,9 @@ class PyNumexpr(Package):
     url      = "https://pypi.python.org/packages/source/n/numexpr/numexpr-2.4.6.tar.gz"
 
     version('2.4.6', '17ac6fafc9ea1ce3eb970b9abccb4fbd')
+    version('2.5', '84f66cced45ba3e30dcf77a937763aaa')
 
-    extends('python')
+    extends('python', ignore=r'bin/f2py$')
     depends_on('py-numpy')
 
     def install(self, spec, prefix):
diff --git a/var/spack/repos/builtin/packages/py-numpy/package.py b/var/spack/repos/builtin/packages/py-numpy/package.py
index a08e612df6c65b7c18d06b6f61d3d5821f6d9f71..40988fb44a75e0046fdd7828b801ca91f63ad2ac 100644
--- a/var/spack/repos/builtin/packages/py-numpy/package.py
+++ b/var/spack/repos/builtin/packages/py-numpy/package.py
@@ -9,6 +9,7 @@ class PyNumpy(Package):
     homepage = "http://www.numpy.org/"
     url      = "https://pypi.python.org/packages/source/n/numpy/numpy-1.9.1.tar.gz"
 
+    version('1.11.0', 'bc56fb9fc2895aa4961802ffbdb31d0b')
     version('1.10.4', 'aed294de0aa1ac7bd3f9745f4f1968ad')
     version('1.9.2',  'a1ed53432dbcd256398898d35bc8e645')
     version('1.9.1',  '78842b73560ec378142665e712ae4ad9')
diff --git a/var/spack/repos/builtin/packages/py-pandas/package.py b/var/spack/repos/builtin/packages/py-pandas/package.py
index 5b9997faa94f0b2d4b4937ed8154a12618a19221..2320b1f92f386383f42e965e0469c23d8f27fbd8 100644
--- a/var/spack/repos/builtin/packages/py-pandas/package.py
+++ b/var/spack/repos/builtin/packages/py-pandas/package.py
@@ -8,18 +8,15 @@ class PyPandas(Package):
 
     version('0.16.0', 'bfe311f05dc0c351f8955fbd1e296e73')
     version('0.16.1', 'fac4f25748f9610a3e00e765474bdea8')
+    version('0.18.0', 'f143762cd7a59815e348adf4308d2cf6')
 
-    extends('python')
+    extends('python', ignore=r'bin/f2py$')
     depends_on('py-dateutil')
     depends_on('py-numpy')
-    depends_on('py-matplotlib')
-    depends_on('py-scipy')
     depends_on('py-setuptools')
     depends_on('py-pytz')
-    depends_on('libdrm')
-    depends_on('libpciaccess')
-    depends_on('llvm')
-    depends_on('mesa')
+    depends_on('py-numexpr')
+    depends_on('py-bottleneck')
 
     def install(self, spec, prefix):
         python('setup.py', 'install', '--prefix=%s' % prefix)
diff --git a/var/spack/repos/builtin/packages/py-pytz/package.py b/var/spack/repos/builtin/packages/py-pytz/package.py
index da6311a784af332ffc7c67fc325b823ea258665b..060cf0cde416f4afb23c1c51ee22ca33e984df27 100644
--- a/var/spack/repos/builtin/packages/py-pytz/package.py
+++ b/var/spack/repos/builtin/packages/py-pytz/package.py
@@ -7,6 +7,7 @@ class PyPytz(Package):
 
     version('2014.10', 'eb1cb941a20c5b751352c52486aa1dd7')
     version('2015.4', '417a47b1c432d90333e42084a605d3d8')
+    version('2016.3', 'abae92c3301b27bd8a9f56b14f52cb29')
 
     extends('python')
 
diff --git a/var/spack/repos/builtin/packages/py-setuptools/package.py b/var/spack/repos/builtin/packages/py-setuptools/package.py
index 26c048bfd423e42bfd33194cf4c95a01c1c2b66b..c6d9be1add79dbc9f099a702400320178529e031 100644
--- a/var/spack/repos/builtin/packages/py-setuptools/package.py
+++ b/var/spack/repos/builtin/packages/py-setuptools/package.py
@@ -9,6 +9,7 @@ class PySetuptools(Package):
     version('16.0', '0ace0b96233516fc5f7c857d086aa3ad')
     version('18.1', 'f72e87f34fbf07f299f6cb46256a0b06')
     version('19.2', '78353b1f80375ca5e088f4b4627ffe03')
+    version('20.5', 'fadc1e1123ddbe31006e5e43e927362b')
 
     extends('python')
 
diff --git a/var/spack/repos/builtin/packages/py-six/package.py b/var/spack/repos/builtin/packages/py-six/package.py
index 05c5bd00a9831a5c9dc6b80941b57b803e8b12f4..df277100f77fae4fb9e245846a419c13411073de 100644
--- a/var/spack/repos/builtin/packages/py-six/package.py
+++ b/var/spack/repos/builtin/packages/py-six/package.py
@@ -6,6 +6,7 @@ class PySix(Package):
     url      = "https://pypi.python.org/packages/source/s/six/six-1.9.0.tar.gz"
 
     version('1.9.0', '476881ef4012262dfc8adc645ee786c4')
+    version('1.10.0', '34eed507548117b2ab523ab14b2f8b55')
 
     extends('python')
     depends_on('py-setuptools')
diff --git a/var/spack/repos/builtin/packages/py-virtualenv/package.py b/var/spack/repos/builtin/packages/py-virtualenv/package.py
index 037a6fc59fe08579ce0c76b6f99eb3538baff6a5..09303d37b4315ca883682883943d3e0c551f52b8 100644
--- a/var/spack/repos/builtin/packages/py-virtualenv/package.py
+++ b/var/spack/repos/builtin/packages/py-virtualenv/package.py
@@ -8,6 +8,7 @@ class PyVirtualenv(Package):
 
     version('1.11.6', 'f61cdd983d2c4e6aeabb70b1060d6f49')
     version('13.0.1', '1ffc011bde6667f0e37ecd976f4934db')
+    version('15.0.1', '28d76a0d9cbd5dc42046dd14e76a6ecc')
 
     extends('python')
     depends_on('py-setuptools')