diff --git a/src/python/grpcio/commands.py b/src/python/grpcio/commands.py
index c1f444f6f1f07911aa1c8d50acd84d3b8bd3e354..1d435474198521a12f45d2d6ca500566608776fb 100644
--- a/src/python/grpcio/commands.py
+++ b/src/python/grpcio/commands.py
@@ -288,15 +288,9 @@ class TestLite(setuptools.Command):
       sys.exit('Test failure')
 
   def _add_eggs_to_path(self):
-    """Adds all egg files under .eggs to sys.path"""
-    # TODO(jtattemusch): there has to be a cleaner way to do this
-    import pkg_resources
-    eggs_dir = os.path.join(PYTHON_STEM, '../../../.eggs')
-    eggs = [os.path.join(eggs_dir, filename)
-            for filename in os.listdir(eggs_dir)
-            if filename.endswith('.egg')]
-    for egg in eggs:
-      sys.path.insert(0, pkg_resources.normalize_path(egg))
+    """Fetch install and test requirements"""
+    self.distribution.fetch_build_eggs(self.distribution.install_requires)
+    self.distribution.fetch_build_eggs(self.distribution.tests_require)
 
 
 class RunInterop(test.test):