diff --git a/common/api/api_plugin_manager.cpp b/common/api/api_plugin_manager.cpp
index 5765d656d3..dd4694ff75 100644
--- a/common/api/api_plugin_manager.cpp
+++ b/common/api/api_plugin_manager.cpp
@@ -403,7 +403,7 @@ void API_PLUGIN_MANAGER::processNextJob( wxCommandEvent& aEvent )
         PYTHON_MANAGER manager( Pgm().GetCommonSettings()->m_Api.python_interpreter );
 
         manager.Execute(
-                wxString::Format( wxS( "-m venv --system-site-packages '%s'" ),
+                wxString::Format( wxS( "-m venv --system-site-packages \"%s\"" ),
                                   job.env_path ),
                 [this]( int aRetVal, const wxString& aOutput, const wxString& aError )
                 {
@@ -443,6 +443,12 @@ void API_PLUGIN_MANAGER::processNextJob( wxCommandEvent& aEvent )
             if( pythonHome )
                 env.env[wxS( "VIRTUAL_ENV" )] = *pythonHome;
 
+#ifdef _WIN32
+            wxString systemRoot;
+            wxGetEnv( wxS( "SYSTEMROOT" ), &systemRoot );
+            env.env[wxS( "SYSTEMROOT" )] = systemRoot;
+#endif
+
             wxString cmd = wxS( "-m pip install --upgrade pip" );
             wxLogTrace( traceApi, "Manager: calling python %s", cmd );
 
@@ -498,9 +504,15 @@ void API_PLUGIN_MANAGER::processNextJob( wxCommandEvent& aEvent )
             if( pythonHome )
                 env.env[wxS( "VIRTUAL_ENV" )] = *pythonHome;
 
+#ifdef _WIN32
+            wxString systemRoot;
+            wxGetEnv( wxS( "SYSTEMROOT" ), &systemRoot );
+            env.env[wxS( "SYSTEMROOT" )] = systemRoot;
+#endif
+
             wxString cmd = wxString::Format(
                     wxS( "-m pip install --no-input --isolated --prefer-binary --require-virtualenv "
-                         "--exists-action i -r '%s'" ),
+                         "--exists-action i -r \"%s\"" ),
                     reqs.GetFullPath() );
 
             wxLogTrace( traceApi, "Manager: calling python %s", cmd );
diff --git a/scripting/python_manager.cpp b/scripting/python_manager.cpp
index 93232b7fbb..8732a763cd 100644
--- a/scripting/python_manager.cpp
+++ b/scripting/python_manager.cpp
@@ -181,8 +181,14 @@ std::optional<wxString> PYTHON_MANAGER::GetVirtualPython( const wxString& aNames
         return std::nullopt;
 
     wxFileName python( *envPath, wxEmptyString );
+    
+#ifdef _WIN32
+    python.AppendDir( "Scripts" );
+    python.SetFullName( "python.exe" );
+#else
     python.AppendDir( "bin" );
     python.SetFullName( "python" );
+#endif
 
     if( !python.IsFileExecutable() )
         return std::nullopt;