Skip to content

Rebuild launch and launch_ros with patch to handle python nodes correct - #297

Merged
traversaro merged 3 commits into
RoboStack:mainfrom
gftabor:python-windows-launch
Sep 22, 2026
Merged

traversaro merged 3 commits into
RoboStack:mainfrom
gftabor:python-windows-launch

Conversation

@gftabor

@gftabor gftabor commented Sep 20, 2026 •

Copy link
Copy Markdown
Contributor

More information can be seen here
ros2/launch_ros#577

ros2/launch#1010

Launch_ros throws

[ERROR] [launch]: Caught exception in launch (see debug for traceback): executable 'pose_bridge.py' not found on the libexec directory 'C:\Users\tabor\OneDrive\Documents\mqp\ros2_ws\install\lib\pushback_sim'

Because windows says a python file can be executed

Launch throws

[ERROR] [pose_bridge.py-13]: exception occurred while executing process:
Traceback (most recent call last):
  File "C:\Users\tabor\OneDrive\Documents\mqp\.pixi\envs\default\Lib\site-packages\launch\actions\execute_local.py", line 569, in __execute_process
    transport, self._subprocess_protocol = await async_execute_process(
                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\tabor\OneDrive\Documents\mqp\.pixi\envs\default\Lib\site-packages\osrf_pycommon\process_utils\async_execute_process_asyncio\impl.py", line 139, in async_execute_process
    transport, protocol = await _async_execute_process_nopty(
                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\tabor\OneDrive\Documents\mqp\.pixi\envs\default\Lib\site-packages\osrf_pycommon\process_utils\async_execute_process_asyncio\impl.py", line 45, in _async_execute_process_nopty
    transport, protocol = await loop.subprocess_exec(
                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\tabor\OneDrive\Documents\mqp\.pixi\envs\default\Lib\asyncio\base_events.py", line 1756, in subprocess_exec
    transport = await self._make_subprocess_transport(
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\tabor\OneDrive\Documents\mqp\.pixi\envs\default\Lib\asyncio\windows_events.py", line 400, in _make_subprocess_transport
    transp = _WindowsSubprocessTransport(self, protocol, args, shell,
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\tabor\OneDrive\Documents\mqp\.pixi\envs\default\Lib\asyncio\base_subprocess.py", line 36, in __init__
    self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
  File "C:\Users\tabor\OneDrive\Documents\mqp\.pixi\envs\default\Lib\asyncio\windows_events.py", line 878, in _start
    self._proc = windows_utils.Popen(
                 ^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\tabor\OneDrive\Documents\mqp\.pixi\envs\default\Lib\asyncio\windows_utils.py", line 153, in __init__
    super().__init__(args, stdin=stdin_rfd, stdout=stdout_wfd,
  File "C:\Users\tabor\OneDrive\Documents\mqp\.pixi\envs\default\Lib\subprocess.py", line 1026, in __init__
    self._execute_child(args, executable, preexec_fn, close_fds,
  File "C:\Users\tabor\OneDrive\Documents\mqp\.pixi\envs\default\Lib\subprocess.py", line 1538, in _execute_child
    hp, ht, pid, tid = _winapi.CreateProcess(executable, args,
                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
OSError: [WinError 193] %1 is not a valid Win32 application

Because calling it directoy doesn't work. Ros2 run gets around this issue by noticing .py files on windows and calling python file instead of directly file.

@traversaro
traversaro merged commit 997244d into RoboStack:main Sep 22, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants