From 25e7b29ad1bd826e1387e3a00065fc6af21a2674 Mon Sep 17 00:00:00 2001 From: Jon Evans Date: Sat, 11 Jan 2025 12:15:46 -0500 Subject: [PATCH] Fixup 37d0d5f1 to pass env vars correctly --- common/api/api_plugin_manager.cpp | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/common/api/api_plugin_manager.cpp b/common/api/api_plugin_manager.cpp index cbccc6b867..028cca823c 100644 --- a/common/api/api_plugin_manager.cpp +++ b/common/api/api_plugin_manager.cpp @@ -253,15 +253,27 @@ void API_PLUGIN_MANAGER::InvokeAction( const wxString& aIdentifier ) return; } + std::optional pythonHome = + PYTHON_MANAGER::GetPythonEnvironment( plugin.Identifier() ); + PYTHON_MANAGER manager( *py ); wxExecuteEnv env; + wxGetEnvMap( &env.env ); + env.env[wxS( "KICAD_API_SOCKET" )] = Pgm().GetApiServer().SocketPath(); + env.env[wxS( "KICAD_API_TOKEN" )] = Pgm().GetApiServer().Token(); + env.cwd = pluginFile.GetPath(); +#ifdef _WIN32 wxString systemRoot; wxGetEnv( wxS( "SYSTEMROOT" ), &systemRoot ); env.env[wxS( "SYSTEMROOT" )] = systemRoot; env.env.erase( "PYTHONHOME" ); env.env.erase( "PYTHONPATH" ); +#endif + + if( pythonHome ) + env.env[wxS( "VIRTUAL_ENV" )] = *pythonHome; manager.Execute( pluginFile.GetFullPath(), []( int aRetVal, const wxString& aOutput, const wxString& aError )