[ros-users] [Discourse.ros.org] [General] ROS2: Cannot run m…

Top Page
Attachments:
Message as email
+ (text/plain)
Delete this message
Reply to this message
Author: Arkadiusz via ros-users
Date:  
To: ros-users
CC: Arkadiusz
Subject: [ros-users] [Discourse.ros.org] [General] ROS2: Cannot run my Python script, "No executable found" error


I am trying to build my python package in ROS2. I have copied the code from [minimal_publisher](https://github.com/ros2/examples/tree/master/rclpy/topics/minimal_publisher) example and just changed some names. After building and trying to run it I get: ```No executable found```.

I am building using ```src/ament/ament_tools/scripts/ament.py build --symlink-install --only-package rtcm_publisher```
and running ```source ~/ros2_ws/install/local_setup.bash``` after build.

What am I doing wrong?

My code here:

setup.py
```from setuptools import setup

package_name = 'rtcm_publisher'


setup(
    name=package_name,
    version='0.4.0',
    packages=[],
    py_modules=[
        'rtcm_publisher_old'],
    data_files=[
        ('share/ament_index/resource_index/packages',
            ['resource/' + package_name]),
        ('share/' + package_name, ['package.xml']),
    ],
    install_requires=['setuptools'],
    author='Mikael Arguedas',
    author_email='',
    maintainer='Mikael Arguedas',
    maintainer_email='',
    keywords=['ROS'],
    classifiers=[
        'Intended Audience :: Developers',
        'License :: OSI Approved :: Apache Software License',
        'Programming Language :: Python',
        'Topic :: Software Development',
    ],
    description='Examples of minimal publishers using rclpy.',
    license='Apache License, Version 2.0',
    entry_points={
        'console_scripts': [
            'rtcm_publisher_old = rtcm_publisher_old:main'
        ],
    },
)
```
package.xml
```<?xml version="1.0"?>
<?xml-model href="http://download.ros.org/schema/package_format2.xsd" schematypens="http://www.w3.org/2001/XMLSchema"?>
<package format="2">
  <name>rtcm_publisher</name>
  <version>0.4.0</version>
  <description>Examples of minimal publishers using rclpy.</description>


<maintainer email="">Mikael Arguedas</maintainer>
<license>Apache License 2.0</license>

<exec_depend>rclpy</exec_depend>
<exec_depend>std_msgs</exec_depend>

<!-- These test dependencies are optional
Their purpose is to make sure that the code passes the linters -->
<!-- <test_depend>ament_copyright</test_depend>
<test_depend>ament_flake8</test_depend>
<test_depend>ament_pep257</test_depend> -->

  <export>
    <build_type>ament_python</build_type>
  </export>
</package>
```
rtcm_publisher_old.py
```# Copyright 2016 Open Source Robotics Foundation, Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.


from time import sleep

import rclpy

from std_msgs.msg import String

# We do not recommend this style as ROS 2 provides timers for this purpose,
# and it is recommended that all nodes call a variation of spin.
# This example is only included for completeness because it is similar to examples in ROS 1.
# For periodic publication please see the other examples using timers.


def main(args=None):
    rclpy.init(args=args)


    node = rclpy.create_node('rtcm_publisher')


    publisher = node.create_publisher(String, 'topic')


    msg = String()


    i = 0
    while rclpy.ok():
        msg.data = 'Hello World: %d' % i
        i += 1
        node.get_logger().info('Publishing: "%s"' % msg.data)
        publisher.publish(msg)
        sleep(0.5)  # seconds


    # Destroy the node explicitly
    # (optional - otherwise it will be done automatically
    # when the garbage collector destroys the node object)
    node.destroy_node()
    rclpy.shutdown()



if __name__ == '__main__':
    main()
```






---
[Visit Topic](https://discourse.ros.org/t/ros2-cannot-run-my-python-script-no-executable-found-error/3912/1) or reply to this email to respond.


If you do not want to receive messages from ros-users please use the unsubscribe link below. If you use the one above, you will stop all of ros-users from receiving updates.
______________________________________________________________________________
ros-users mailing list

http://lists.ros.org/mailman/listinfo/ros-users
Unsubscribe: <http://lists.ros.org/mailman//options/ros-users>