diff --git a/src/python/grpcio/requirements.txt b/src/python/grpcio/requirements.txt
index 608ba402e094aa65db61e990c34e58119408db6c..77356e0a747308a65c9e7d35616ca36e23983589 100644
--- a/src/python/grpcio/requirements.txt
+++ b/src/python/grpcio/requirements.txt
@@ -1,2 +1,2 @@
-enum34==1.0.4
-futures==2.2.0
+enum34>=1.0.4
+futures>=2.2.0
diff --git a/src/python/grpcio/setup.py b/src/python/grpcio/setup.py
index 151b2bfcb4d55fd64f092cb8d6c25f2de016e23e..1288264c73051ba3cdd8bcec71ab00fa6ff6cedf 100644
--- a/src/python/grpcio/setup.py
+++ b/src/python/grpcio/setup.py
@@ -87,9 +87,8 @@ _PACKAGE_DIRECTORIES = {
 }
 
 _INSTALL_REQUIRES = (
-    'enum34==1.0.4',
-    'futures==2.2.0',
-    'protobuf==3.0.0a3',
+    'enum34>=1.0.4',
+    'futures>=2.2.0',
 )
 
 _SETUP_REQUIRES = (
diff --git a/src/python/grpcio_test/setup.py b/src/python/grpcio_test/setup.py
index 216119f0e7bb1ba44bc14667946f2ea5ac5a05e7..fe36bc9232ba6ae1dcb80a36bf77b4e5984dde79 100644
--- a/src/python/grpcio_test/setup.py
+++ b/src/python/grpcio_test/setup.py
@@ -72,6 +72,8 @@ _SETUP_REQUIRES = (
 _INSTALL_REQUIRES = (
     'oauth2client>=1.4.7',
     'grpcio>=0.11.0b0',
+    # TODO(issue 3321): Unpin protobuf dependency.
+    'protobuf==3.0.0a3',
 )
 
 _COMMAND_CLASS = {