diff --git a/requirements.txt b/requirements.txt
new file mode 100644
index 0000000000000000000000000000000000000000..6d514b193654ed2d2c35ac6cdda95e945ba869be
--- /dev/null
+++ b/requirements.txt
@@ -0,0 +1,5 @@
+setuptools
+bob.extension
+bob.blitz
+bob.core
+bob.io.base
diff --git a/setup.py b/setup.py
index 0196131ee2423a719550856c1bc54f751e914f8e..f548793c3f9ec81afa1dbc0ffd0781a4c9dbce75 100644
--- a/setup.py
+++ b/setup.py
@@ -6,7 +6,7 @@
 bob_packages = ['bob.core', 'bob.io.base']
 
 from setuptools import setup, find_packages, dist
-dist.Distribution(dict(setup_requires=['bob.blitz'] + bob_packages))
+dist.Distribution(dict(setup_requires=['bob.extension', 'bob.blitz'] + bob_packages))
 from bob.blitz.extension import Extension, Library, build_ext
 
 packages = ['boost']
@@ -30,12 +30,8 @@ setup(
     include_package_data=True,
     zip_safe=False,
 
-    install_requires=[
-      'setuptools',
-      'bob.blitz',
-      'bob.core',
-      'bob.io.base',
-    ],
+    setup_requires = build_requires,
+    install_requires = build_requires,
 
     namespace_packages=[
       "bob",