holger krekel committed 6544a11

make envsitespackagesdir load lazily to prevent early unsupported interpreter error
if a basepython is not installed

  • Participants
  • Parent commits 0ba64f1

Comments (0)

Files changed (1)

File tox/

             name = "python"
         return self.envbindir.join(name)
-    @property
     def envsitepackagesdir(self):
         print_envsitepackagesdir = textwrap.dedent("""
         import sys
                     "substitution %r: %r not found in environment" %
                     (key, envkey))
             return os.environ[envkey]
-        if key not in self._subs:
+        val = self._subs.get(key, None)
+        if val is None:
             if key.startswith("[") and "]" in key:
                 i = key.find("]")
                 section, item = key[1:i], key[i+1:]
             raise tox.exception.ConfigError(
                 "substitution key %r not found" % key)
-        return str(self._subs[key])
+        if callable(val):
+            val = val()
+        return str(val)
     def _replace_posargs(self, match):
         return self._do_replace_posargs(lambda:'substitution_value'))