diff --git a/packages/py-pynn/package.py b/packages/py-pynn/package.py
index 9726f1c6a8b8f3d080eeecf40ee9d498440d8c22..3abf55db2da5777e5216dd5af6d8aa3c37819a91 100644
--- a/packages/py-pynn/package.py
+++ b/packages/py-pynn/package.py
@@ -12,27 +12,39 @@ class PyPynn(PythonPackage):
     """
 
     homepage = "http://neuralensemble.org/PyNN/"
-    pypi = "PyNN/PyNN-0.8.3.tar.gz"
-    git      = "https://github.com/NeuralEnsemble/PyNN.git"
+    pypi = "PyNN/PyNN-0.10.0.tar.gz"
+    git = "https://github.com/NeuralEnsemble/PyNN.git"
 
+    version('0.10.0', sha256='04120fe0e03260d664b337e0ac29d985c3fb3684ef35b1add93a66739891c98f')
     version('0.9.6', sha256='d85226800e30bc1692d3f84485c3fa20b921c2ab55f1201d0a3bf23432e16cd2')
     version('0.9.5', sha256='91af2126b639a6a795bfc2709ac49423278c4794b6d0da143908b9afcb415f80')
-    version('0.9.1', sha256='bbc60fea3235427191feb2daa0e2fa07eb1c3946104c068ac8a2a0501263b0b1')
-    version('0.8.3', sha256='9d59e6cffa4714f0c892ec6b32d1f5f8f75ba3a20d8635bac50c047aa6f2537e')
-    version('0.8beta', commit='ffb0cb1661f2b0f2778db8f71865978fe7a7a6a4')
-    version('0.8.1', sha256='ce94246284588414d1570c1d5d697805f781384e771816727c830b01ee30fe39')
-    version('0.7.5', sha256='15f75f422f3b71c6129ecef23f29d8baeb3ed6502e7a321b8a2596c78ef7e03c')
 
-    depends_on('python@2.6:2.8,3.3:')
+    depends_on('python@2.7:2.8,3.3:', when="@0.9.5")
+    depends_on('python@2.7:2.8,3.6:', when="@0.9.6")
+    depends_on('python@3.7:',         when="@0.10.0:")
+
     depends_on('py-jinja2@2.7:',        type=('build', 'run'))
     depends_on('py-docutils@0.10:',     type=('build', 'run'))
-    depends_on('py-numpy@1.5:',         type=('build', 'run'))
-    depends_on('py-quantities@0.10:',   type=('build', 'run'))
-    depends_on('py-lazyarray@0.2.9:',   type=('build', 'run'))
 
-    depends_on('py-neo@0.3:0.4.1',      type=('build', 'run'), when="@:0.8.3")
-    depends_on('py-neo@0.5.0:',         type=('build', 'run'), when="@0.9.0:")
-    depends_on('py-lazyarray',          type=('build', 'run'), when="@0.9.0:")
+    depends_on('py-numpy@1.8.2:',       type=('build', 'run'), when="@0.9.5")
+    depends_on('py-numpy@1.13.0:',      type=('build', 'run'), when="@0.9.6")
+    depends_on('py-numpy@1.16.1:',      type=('build', 'run'), when="@0.10.0:")
+
+    depends_on('py-quantities@0.12.1:', type=('build', 'run'), when="@0.9.5:")
+
+    depends_on('py-lazyarray@0.3.2:',   type=('build', 'run'), when="@0.9.5")
+    depends_on('py-lazyarray@0.3.4:',   type=('build', 'run'), when="@0.9.6")
+    depends_on('py-lazyarray@0.5.0:',   type=('build', 'run'), when="@0.10.0:")
+
+    depends_on('py-neo@0.5.2:',         type=('build', 'run'), when="@0.9.5")
+    depends_on('py-neo@0.8.0',          type=('build', 'run'), when="@0.9.6")
+    depends_on('py-neo@0.10.0:',        type=('build', 'run'), when="@0.10.0:")
+
+    depends_on('py-lazyarray@0.3.2:',   type=('build', 'run'), when="@0.9.5")
+    depends_on('py-lazyarray@0.3.4:',   type=('build', 'run'), when="@0.9.6")
+    depends_on('py-lazyarray@0.5.0:',   type=('build', 'run'), when="@0.10.0:")
+
+    depends_on('py-mpi4py',             type=('build', 'run'), when='+mpi')
 
     depends_on('py-mock@1.0:', type='test')
 
diff --git a/spack.yaml b/spack.yaml
index dd0c326ca4884f3d778b3d39d8ea8251d99e9f06..0a5a450cb795edd48a22f9707d6c18ad9737c6eb 100644
--- a/spack.yaml
+++ b/spack.yaml
@@ -21,7 +21,7 @@ spack:
     - nest@3.3 +python +gsl +mpi
     - arbor +python +mpi ^python@3:3.9
     - neuron +mpi
-    - py-pynn@0.9.6
+    - py-pynn@0.10.0
     - tvb-data
     - tvb-library ^py-numba@0.54.0 ^binutils+ld+gold
     - tvb-storage ^binutils+ld+gold