code: def msvc14_get_vc_env(plat_spec):
      
      # Try to get environment from vcvarsall.bat (Classical way)
      try:
          return get_unpatched(msvc14_get_vc_env)(plat_spec)
      except distutils.errors.DistutilsPlatformError:
          # Pass error Vcvarsall.bat is missing
          pass
  
      # If error, try to set environment directly
      try:
          return EnvironmentInfo(plat_spec, vc_min_ver=14.0).return_env()
      except distutils.errors.DistutilsPlatformError as exc:
          _augment_exception(exc, 14.0)
          raise
docs: Patched "distutils._msvccompiler._get_vc_env" for support extra
      compilers.
  
      Set environment without use of "vcvarsall.bat".
  
      Known supported compilers
      -------------------------
      Microsoft Visual C++ 14.0:
          Microsoft Visual C++ Build Tools 2015 (x86, x64, arm)
          Microsoft Visual Studio 2017 (x86, x64, arm, arm64)
          Microsoft Visual Studio Build Tools 2017 (x86, x64, arm, arm64)
  
      Parameters
      ----------
      plat_spec: str
          Target architecture.
  
      Return
      ------
      environment: dict