aboutsummaryrefslogtreecommitdiffstats
path: root/setuptools/msvc9_support.py
diff options
context:
space:
mode:
authorJason R. Coombs <jaraco@jaraco.com>2016-05-02 10:06:01 -0400
committerJason R. Coombs <jaraco@jaraco.com>2016-05-02 10:06:01 -0400
commit28ef4014b03a6d1b2428def3bb78e665679a5b12 (patch)
tree281449d200f283604cd28f01c806cf3e3fe60e78 /setuptools/msvc9_support.py
parentde9e0e8386aea53815f3330a82d7e0d7b77ede7a (diff)
downloadexternal_python_setuptools-28ef4014b03a6d1b2428def3bb78e665679a5b12.tar.gz
external_python_setuptools-28ef4014b03a6d1b2428def3bb78e665679a5b12.tar.bz2
external_python_setuptools-28ef4014b03a6d1b2428def3bb78e665679a5b12.zip
Restore ability for msvc9_support to be imported on non-Windows platforms.
Diffstat (limited to 'setuptools/msvc9_support.py')
-rw-r--r--setuptools/msvc9_support.py25
1 files changed, 21 insertions, 4 deletions
diff --git a/setuptools/msvc9_support.py b/setuptools/msvc9_support.py
index dba7c392..1737cc21 100644
--- a/setuptools/msvc9_support.py
+++ b/setuptools/msvc9_support.py
@@ -2,9 +2,26 @@
This module improve support for Microsoft Visual C++ compilers. (Windows Only)
"""
import os
+import collections
import itertools
import distutils.errors
-from setuptools.extern.six.moves import winreg, filterfalse
+from setuptools.extern.six.moves import filterfalse
+
+try:
+ from setuptools.extern.six.moves import winreg
+ safe_env = os.environ
+except ImportError:
+ """
+ Mock winreg and environ so the module can be imported
+ on this platform.
+ """
+ class winreg:
+ HKEY_USERS = None
+ HKEY_CURRENT_USER = None
+ HKEY_LOCAL_MACHINE = None
+ HKEY_CLASSES_ROOT = None
+ safe_env = collections.defaultdict(lambda: '')
+
try:
# Distutil file for MSVC++ 9.0 and upper (Python 2.7 to 3.4)
@@ -232,7 +249,7 @@ class PlatformInfo:
arch: str
Target architecture.
"""
- current_cpu = os.environ['processor_architecture'].lower()
+ current_cpu = safe_env['processor_architecture'].lower()
def __init__(self, arch):
self.arch = arch.lower().replace('x64', 'amd64')
@@ -443,8 +460,8 @@ class SystemInfo:
vcver: float
Required Microsoft Visual C++ version.
"""
- WinDir = os.environ['WinDir']
- ProgramFiles = os.environ['ProgramFiles']
+ WinDir = safe_env['WinDir']
+ ProgramFiles = safe_env['ProgramFiles']
ProgramFilesx86 = os.environ.get('ProgramFiles(x86)', ProgramFiles)
def __init__(self, registry_info, vcver=None):