https://github.com/python/cpython/commit/c17f378c0efb67afb245fe2ef9e7dd2272541ff9
commit: c17f378c0efb67afb245fe2ef9e7dd2272541ff9
branch: main
author: Victor Stinner <[email protected]>
committer: vstinner <[email protected]>
date: 2025-08-06T14:34:56+02:00
summary:
Use PyInitConfig API in _freeze_module.c (#137423)
files:
M Programs/_freeze_module.c
diff --git a/Programs/_freeze_module.c b/Programs/_freeze_module.c
index 06d1ee016dc2a8..a5809b37b6b493 100644
--- a/Programs/_freeze_module.c
+++ b/Programs/_freeze_module.c
@@ -45,27 +45,40 @@ static const char header[] =
static void
runtime_init(void)
{
- PyConfig config;
- PyConfig_InitIsolatedConfig(&config);
-
- config.site_import = 0;
+ PyInitConfig *config = PyInitConfig_Create();
+ if (config == NULL) {
+ printf("memory allocation failed\n");
+ exit(1);
+ }
- PyStatus status;
- status = PyConfig_SetString(&config, &config.program_name,
- L"./_freeze_module");
- if (PyStatus_Exception(status)) {
- PyConfig_Clear(&config);
- Py_ExitStatusException(status);
+ if (PyInitConfig_SetInt(config, "site_import", 0) < 0) {
+ goto error;
+ }
+ if (PyInitConfig_SetStr(config, "program_name", "./_freeze_module") < 0) {
+ goto error;
}
/* Don't install importlib, since it could execute outdated bytecode. */
- config._install_importlib = 0;
- config._init_main = 0;
+ if (PyInitConfig_SetInt(config, "_install_importlib", 0) < 0) {
+ goto error;
+ }
+ if (PyInitConfig_SetInt(config, "_init_main", 0) < 0) {
+ goto error;
+ }
+
+ if (Py_InitializeFromInitConfig(config) < 0) {
+ goto error;
+ }
+ PyInitConfig_Free(config);
+ return;
- status = Py_InitializeFromConfig(&config);
- PyConfig_Clear(&config);
- if (PyStatus_Exception(status)) {
- Py_ExitStatusException(status);
+error:
+ {
+ const char *err_msg;
+ (void)PyInitConfig_GetError(config, &err_msg);
+ printf("Python init error: %s\n", err_msg);
+ PyInitConfig_Free(config);
+ exit(1);
}
}
_______________________________________________
Python-checkins mailing list -- [email protected]
To unsubscribe send an email to [email protected]
https://mail.python.org/mailman3//lists/python-checkins.python.org
Member address: [email protected]