holger krekel committed 6544a11

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

Comments (0)

Files changed (1)

             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'))
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.