diff --git a/setup.py b/setup.py
index 7a65698cbb40db9e1f504366242d1366bf8c66fd..cdd3bb3f0dd4d5763b2b67d337ad42c5a975e9c2 100644
--- a/setup.py
+++ b/setup.py
@@ -79,6 +79,11 @@ BUILD_WITH_CYTHON = os.environ.get('GRPC_PYTHON_BUILD_WITH_CYTHON', False)
 ENABLE_CYTHON_TRACING = os.environ.get(
     'GRPC_PYTHON_ENABLE_CYTHON_TRACING', False)
 
+# Environment variable specifying whether or not there's interest in setting up
+# documentation building.
+ENABLE_DOCUMENTATION_BUILD = os.environ.get(
+    'GRPC_PYTHON_ENABLE_DOCUMENTATION_BUILD', False)
+
 # There are some situations (like on Windows) where CC, CFLAGS, and LDFLAGS are
 # entirely ignored/dropped/forgotten by distutils and its Cygwin/MinGW support.
 # We use these environment variables to thus get around that without locking
@@ -210,7 +215,8 @@ SETUP_REQUIRES = INSTALL_REQUIRES + (
     'sphinx>=1.3',
     'sphinx_rtd_theme>=0.1.8',
     'six>=1.10',
-)
+  ) if ENABLE_DOCUMENTATION_BUILD else ()
+
 if BUILD_WITH_CYTHON:
   sys.stderr.write(
     "You requested a Cython build via GRPC_PYTHON_BUILD_WITH_CYTHON, "
diff --git a/tools/distrib/python/docgen.py b/tools/distrib/python/docgen.py
index 15bd8d855f6948cff34a99195714a8edbf708833..622317920d4f9c7228df872e20ddc3056adae4a7 100755
--- a/tools/distrib/python/docgen.py
+++ b/tools/distrib/python/docgen.py
@@ -67,6 +67,7 @@ environment.update({
     'LDFLAGS': '-L{}'.format(LIBRARY_PATH),
     'LD_LIBRARY_PATH': LIBRARY_PATH,
     'GRPC_PYTHON_BUILD_WITH_CYTHON': '1',
+    'GRPC_PYTHON_ENABLE_DOCUMENTATION_BUILD': '1',
 })
 
 subprocess_arguments_list = [