diff --git a/dev-requirements.txt b/dev-requirements.txt
index ec29477a5d19797be3eb69f2d7a79d26e43e184f..fe9071d3b7743df2e41148fab006bd867fec7971 100644
--- a/dev-requirements.txt
+++ b/dev-requirements.txt
@@ -1,5 +1,4 @@
 --allow-all-external
-beanbag-docutils>=1.4
 coverage
 django_evolution>=0.7.6
 kgb
@@ -8,4 +7,3 @@ Markdown>=2.4.0,<2.4.999
 mock
 MySQL-python
 Pygments>=2.0.2
-Sphinx>=1.3.1
diff --git a/doc-requirements.txt b/doc-requirements.txt
new file mode 100644
index 0000000000000000000000000000000000000000..fdca834c421332ef4d82eb6fdae6f56f09e5633e
--- /dev/null
+++ b/doc-requirements.txt
@@ -0,0 +1,2 @@
+beanbag-docutils>=1.4
+Sphinx>=1.6.1
diff --git a/setup.py b/setup.py
index 72889e7749c741be3ce45d6309675e267ffea01c..f9ebebf5654e6826f2249f16cc54b2114453f426 100755
--- a/setup.py
+++ b/setup.py
@@ -69,15 +69,21 @@ class DevelopCommand(develop):
     user_options = develop.user_options + [
         ('no-npm', None, "Don't install packages from npm"),
         ('use-npm-cache', None, 'Use npm-cache to install packages'),
+        ('with-doc-deps', None, 'Install documentation-related dependencies'),
     ]
 
-    boolean_options = develop.boolean_options + ['no-npm', 'use-npm-cache']
+    boolean_options = develop.boolean_options + [
+        'no-npm',
+        'use-npm-cache',
+        'with-doc-deps',
+    ]
 
     def initialize_options(self):
         """Initialize options for the command."""
         develop.initialize_options(self)
 
         self.no_npm = None
+        self.with_doc_deps = None
         self.use_npm_cache = None
 
     def install_for_development(self):
@@ -128,6 +134,9 @@ class DevelopCommand(develop):
         self._run_pip(['install', '-e', '.'])
         self._run_pip(['install', '-r', 'dev-requirements.txt'])
 
+        if self.with_doc_deps:
+            self._run_pip(['install', '-r', 'doc-requirements.txt'])
+
         if not self.no_npm:
             if self.use_npm_cache:
                 self.distribution.command_options['install_node_deps'] = {
