From b193fa996a746111252156f11fb14c12fd6267e6 Mon Sep 17 00:00:00 2001 From: Carl Meyer Date: Fri, 15 Jun 2018 22:40:56 -0600 Subject: bpo-33499: Add PYTHONPYCACHEPREFIX env var for alt bytecode cache location. (GH-6834) In some development setups it is inconvenient or impossible to write bytecode caches to the code tree, but the bytecode caches are still useful. The PYTHONPYCACHEPREFIX environment variable allows specifying an alternate location for cached bytecode files, within which a directory tree mirroring the code tree will be created. This cache tree is then used (for both reading and writing) instead of the local `__pycache__` subdirectory within each source directory. Exposed at runtime as sys.pycache_prefix (defaulting to None), and can be set from the CLI as "-X pycache_prefix=path". Patch by Carl Meyer. --- Python/sysmodule.c | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'Python/sysmodule.c') diff --git a/Python/sysmodule.c b/Python/sysmodule.c index 3fab81aa50..786f2b1a0a 100644 --- a/Python/sysmodule.c +++ b/Python/sysmodule.c @@ -2458,6 +2458,12 @@ _PySys_EndInit(PyObject *sysdict, _PyMainInterpreterConfig *config) SET_SYS_FROM_STRING_BORROW("exec_prefix", config->exec_prefix); SET_SYS_FROM_STRING_BORROW("base_exec_prefix", config->base_exec_prefix); + if (config->pycache_prefix != NULL) { + SET_SYS_FROM_STRING_BORROW("pycache_prefix", config->pycache_prefix); + } else { + PyDict_SetItemString(sysdict, "pycache_prefix", Py_None); + } + if (config->argv != NULL) { SET_SYS_FROM_STRING_BORROW("argv", config->argv); } -- cgit v1.2.1