Fix subprocess.run call on platformio_generator.py
diff --git a/generator/platformio_generator.py b/generator/platformio_generator.py
index d86777e..503e4e3 100644
--- a/generator/platformio_generator.py
+++ b/generator/platformio_generator.py
@@ -2,32 +2,33 @@
 import hashlib
 import pathlib
 import shlex
+import subprocess
+
 import SCons.Action
 from platformio import fs
 
 Import("env")
 
+# We don't use `env.Execute` because it does not handle spaces in path
+# See https://github.com/nanopb/nanopb/pull/834
+# So, we resolve the path to the executable and then use `subprocess.run`
+python_exe = env.subst("$PYTHONEXE")
+
 try:
     import protobuf
 except ImportError:
-    env.Execute(
-        env.VerboseAction(
-            # We need to speicify protobuf version. In other case got next (on Ubuntu 20.04):
-            # Requirement already satisfied: protobuf in /usr/lib/python3/dist-packages (3.6.1)
-            '"$PYTHONEXE" -m pip install "protobuf>=3.19.1"',
-            "Installing Protocol Buffers dependencies",
-        )
-    )
+    print("[nanopb] Installing Protocol Buffers dependencies");
+
+    # We need to speicify protobuf version. In other case got next (on Ubuntu 20.04):
+    # Requirement already satisfied: protobuf in /usr/lib/python3/dist-packages (3.6.1)
+    subprocess.run([python_exe, '-m', 'pip', 'install', "protobuf>=3.19.1"])
 
 try:
     import grpc_tools.protoc
 except ImportError:
-    env.Execute(
-        env.VerboseAction(
-            '"$PYTHONEXE" -m pip install "grpcio-tools>=1.43.0"',
-            "Installing GRPC dependencies",
-        )
-    )
+    print("[nanopb] Installing gRPC dependencies");
+    subprocess.run([python_exe, '-m', 'pip', 'install', "grpcio-tools>=1.43.0"])
+
 
 nanopb_root = os.path.join(os.getcwd(), '..')