_CONFIG_VARS = None
# True iff _CONFIG_VARS has been fully initialized.
_CONFIG_VARS_INITIALIZED = False
+_config_vars_cached_prefix = None
+_config_vars_cached_exec_prefix = None
_USER_BASE = None
each argument in the configuration variable dictionary.
"""
global _CONFIG_VARS_INITIALIZED
+ global _config_vars_cached_prefix
+ global _config_vars_cached_exec_prefix
# Avoid claiming the lock once initialization is complete.
+ prefix = os.path.normpath(sys.prefix)
+ exec_prefix = os.path.normpath(sys.exec_prefix)
if _CONFIG_VARS_INITIALIZED:
# GH-126789: If sys.prefix or sys.exec_prefix were updated, invalidate the cache.
- prefix = os.path.normpath(sys.prefix)
- exec_prefix = os.path.normpath(sys.exec_prefix)
- if _CONFIG_VARS['prefix'] != prefix or _CONFIG_VARS['exec_prefix'] != exec_prefix:
+ if _config_vars_cached_prefix != prefix or _config_vars_cached_exec_prefix != exec_prefix:
with _CONFIG_VARS_LOCK:
_CONFIG_VARS_INITIALIZED = False
_init_config_vars()
+ _config_vars_cached_prefix = prefix
+ _config_vars_cached_exec_prefix = exec_prefix
else:
# Initialize the config_vars cache.
with _CONFIG_VARS_LOCK:
# don't re-enter init_config_vars().
if _CONFIG_VARS is None:
_init_config_vars()
+ _config_vars_cached_prefix = prefix
+ _config_vars_cached_exec_prefix = exec_prefix
if args:
vals = []