Blob Blame History Raw
diff --git a/pyuno/source/loader/pyuno_loader.cxx b/pyuno/source/loader/pyuno_loader.cxx
index 05a03fe72c4d..44fc885a3dc0 100644
--- a/pyuno/source/loader/pyuno_loader.cxx
+++ b/pyuno/source/loader/pyuno_loader.cxx
@@ -105,7 +105,7 @@ static PyRef getObjectFromLoaderModule( const char * func )
     return object;
 }
 
-static void setPythonHome ( const OUString & pythonHome )
+static void setPythonHome ( const OUString & pythonHome, PyConfig * config )
 {
     OUString systemPythonHome;
     osl_getSystemPathFromFileURL( pythonHome.pData, &(systemPythonHome.pData) );
@@ -129,9 +129,7 @@ static void setPythonHome ( const OUString & pythonHome )
         PyErr_SetString(PyExc_SystemError, "python home path is too long");
         return;
     }
-SAL_WNODEPRECATED_DECLARATIONS_PUSH
-    Py_SetPythonHome(wide); // deprecated since python 3.11
-SAL_WNODEPRECATED_DECLARATIONS_POP
+    config->home = wide;
 }
 
 static void prependPythonPath( std::u16string_view pythonPathBootstrap )
@@ -183,11 +181,13 @@ void pythonInit() {
     if ( Py_IsInitialized()) // may be inited by getComponentContext() already
         return;
 
+    PyConfig config;
     OUString pythonPath;
     OUString pythonHome;
     OUString path( "$BRAND_BASE_DIR/" LIBO_ETC_FOLDER "/" SAL_CONFIGFILE("pythonloader.uno" ));
     rtl::Bootstrap::expandMacros(path); //TODO: detect failure
     rtl::Bootstrap bootstrap(path);
+    PyConfig_InitPythonConfig( &config );
 
     // look for pythonhome
     bootstrap.getFrom( "PYUNO_LOADER_PYTHONHOME", pythonHome );
@@ -196,7 +196,7 @@ void pythonInit() {
     // pythonhome+pythonpath must be set before Py_Initialize(), otherwise there appear warning on the console
     // sadly, there is no api for setting the pythonpath, we have to use the environment variable
     if( !pythonHome.isEmpty() )
-        setPythonHome( pythonHome );
+        setPythonHome( pythonHome, &config );
 
     if( !pythonPath.isEmpty() )
         prependPythonPath( pythonPath );