summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--changelog.d/3070.misc.rst1
-rw-r--r--setuptools/command/easy_install.py9
2 files changed, 9 insertions, 1 deletions
diff --git a/changelog.d/3070.misc.rst b/changelog.d/3070.misc.rst
new file mode 100644
index 00000000..871b5d00
--- /dev/null
+++ b/changelog.d/3070.misc.rst
@@ -0,0 +1 @@
+Avoid AttributeError in easy_install.create_home_path when sysconfig.get_config_vars values are not strings.
diff --git a/setuptools/command/easy_install.py b/setuptools/command/easy_install.py
index e25090b8..ef1a9b23 100644
--- a/setuptools/command/easy_install.py
+++ b/setuptools/command/easy_install.py
@@ -1334,7 +1334,7 @@ class easy_install(Command):
if not self.user:
return
home = convert_path(os.path.expanduser("~"))
- for name, path in self.config_vars.items():
+ for path in only_strs(self.config_vars.values()):
if path.startswith(home) and not os.path.isdir(path):
self.debug_print("os.makedirs('%s', 0o700)" % path)
os.makedirs(path, 0o700)
@@ -2304,6 +2304,13 @@ def current_umask():
return tmp
+def only_strs(values):
+ """
+ Exclude non-str values. Ref #3063.
+ """
+ return filter(lambda val: isinstance(val, str), values)
+
+
class EasyInstallDeprecationWarning(SetuptoolsDeprecationWarning):
"""
Warning for EasyInstall deprecations, bypassing suppression.