ROS2: Cannot run my Python script, "No executable found" error

Agreed with @dirk-thomas’s comment.
I would expect your executables to be installed in bin so it should be on the PATH and can be invoked directly from the commandline.
If you want the executables to not be on the path and to be invokable using ros2 run you need to them install to <install-prefix>/lib/<pkgname>, you can specify this in the setup.cfg file: https://github.com/ros2/examples/blob/a75151ef1388b565268508228df42c06462c1337/rclpy/topics/minimal_publisher/setup.cfg