# Revision history [back]

The problem is with the contents of your Python files, not with ROS, roslaunch or your workspace.

Looking at src/aiml_client.py (I haven't checked the other files), we see:

#!usr/bin/python2
import rospy
from std_msgs.msg import String
...


The issue is with the first line: #!usr/bin/python2.

The shebang should be followed by the path to an interpreter for the file, in your case the Python interpreter. The binary for that (python2 in this case) is typically located in /usr/bin, but this line is missing the first forward slash (/) making it a relative path.

As all ROS nodes have their cwd set to $HOME/.ros at launch the relative path to the interpreter is not a valid path and so roslaunch gets a "No such file or directory" and shows that to you. Also: I did chmod u+x all the executable .py and .launch files. .launch files are not directly executable, so there is no point in setting the exec bit on them. The problem is with the contents of your Python files, not with ROS, roslaunch or your workspace. Looking at src/aiml_client.py (I haven't checked the other files), we see: #!usr/bin/python2 import rospy from std_msgs.msg import String ...  The issue is with the first line: #!usr/bin/python2. The shebang should be followed by the path to an interpreter for the file, in your case the Python interpreter. The binary for that (python2 in this case) is typically located in /usr/bin, but this line is missing the first forward slash (/) making it a relative path. As all ROS nodes have their cwd set to $HOME/.ros at launch the relative path to the interpreter is not a valid path and so roslaunch gets a "No such file or directory" and shows that to you.

Also:

I did chmod u+x all the executable .py and .launch files.

.launch files are not directly executable, so there is no point in setting the exec bit on them.

Edit: just checked the other scripts and all of them except aiml_server.py have an incorrect shebang line.