Add --python_path into bazelrc file

PiperOrigin-RevId: 164233867
diff --git a/configure.py b/configure.py
index edb0a47..a783990 100644
--- a/configure.py
+++ b/configure.py
@@ -150,7 +150,7 @@
   return paths
 
 
-def setup_python(environ_cp):
+def setup_python(environ_cp, bazel_version):
   """Setup python related env variables."""
   # Get PYTHON_BIN_PATH, default is the current running python.
   default_python_bin_path = sys.executable
@@ -200,8 +200,17 @@
   write_to_bazelrc('build --define PYTHON_LIB_PATH="%s"' % python_lib_path)
   write_to_bazelrc('build --force_python=py%s' % python_major_version)
   write_to_bazelrc('build --host_force_python=py%s' % python_major_version)
-  write_to_bazelrc('build --python%s_path=\"%s"' % (python_major_version,
-                                                    python_bin_path))
+  bazel_version_int = convert_version_to_int(bazel_version)
+  version_0_5_3_int = convert_version_to_int('0.5.3')
+  # If bazel_version_int is None, we are testing a release Bazel, then the
+  # version should be higher than 0.5.3
+  # TODO(pcloudy): remove this after required min bazel version is higher
+  # than 0.5.3
+  if not bazel_version_int or bazel_version_int >= version_0_5_3_int:
+    write_to_bazelrc('build --python_path=\"%s"' % python_bin_path)
+  else:
+    write_to_bazelrc('build --python%s_path=\"%s"' % (python_major_version,
+                                                      python_bin_path))
   write_to_bazelrc('test --force_python=py%s' % python_major_version)
   write_to_bazelrc('test --host_force_python=py%s' % python_major_version)
   write_to_bazelrc('test --define PYTHON_BIN_PATH="%s"' % python_bin_path)
@@ -372,11 +381,32 @@
   environ_cp[var_name] = str(var)
 
 
+def convert_version_to_int(version):
+  """Convert a version number to a integer that can be used to compare.
+
+  Args:
+    version: a version to be covnerted
+
+  Returns:
+    An integer if converted successfully, otherwise return None.
+  """
+  version_segments = version.split('.')
+  for seg in version_segments:
+    if not seg.isdigit():
+      return None
+
+  version_str = ''.join(['%03d' % int(seg) for seg in version_segments])
+  return int(version_str)
+
+
 def check_bazel_version(min_version):
   """Check installed bezel version is at least min_version.
 
   Args:
     min_version: string for minimum bazel version.
+
+  Returns:
+    The bazel version detected.
   """
   try:
     curr_version = run_shell('bazel --batch version')
@@ -389,23 +419,20 @@
       curr_version = line.split('Build label: ')[1]
       break
 
-  min_version_segments = min_version.split('.')
-  curr_version_segments = curr_version.split('.')
+  min_version_int = convert_version_to_int(min_version)
+  curr_version_int = convert_version_to_int(curr_version)
 
   # Check if current bazel version can be detected properly.
-  for seg in curr_version_segments:
-    if not seg.isdigit():
-      print('WARNING: current bazel installation is not a release version.')
-      print('Make sure you are running at least bazel %s' % min_version)
-      return
+  if not curr_version_int:
+    print('WARNING: current bazel installation is not a release version.')
+    print('Make sure you are running at least bazel %s' % min_version)
+    return curr_version
 
-  min_version_str = ''.join(['%03d' % int(seg) for seg in min_version_segments])
-  curr_version_str = ''.join(
-      ['%03d' % int(seg) for seg in curr_version_segments])
-  if int(curr_version_str) < int(min_version_str):
+  if curr_version_int < min_version_int:
     print('Please upgrade your bazel installation to version %s or higher to '
           'build TensorFlow!' % min_version)
     sys.exit(0)
+  return curr_version
 
 
 def set_cc_opt_flags(environ_cp):
@@ -886,11 +913,11 @@
   # environment variables.
   environ_cp = dict(os.environ)
 
-  check_bazel_version('0.4.5')
+  bazel_version = check_bazel_version('0.4.5')
 
   reset_tf_configure_bazelrc()
   cleanup_makefile()
-  setup_python(environ_cp)
+  setup_python(environ_cp, bazel_version)
   run_gen_git_source(environ_cp)
 
   if is_windows():