Auburn-Automow/rososc — Issue #4: Behaves poorly when pip is missing
Author: mpflueger
Created: 2011-12-27 10:51:18+00:00
State: open

I tried to build this stack using rosmake in electric without pip, and it produced a very opaque error message. Installing the python-pip package fixed it (ubuntu 10.10 Maverick), but I almost gave up. This dependency should be documented and handled more cleanly.

For reference, this is the error message:

%rosmake
[ rosmake ] No package specified. Building stack ['rososc']
[ rosmake ] Packages requested are: ['rososc']
[ rosmake ] Logging to directory/home/max/.ros/rosmake/rosmake_output-20111227-022745
[ rosmake ] Expanded args ['rososc'] to:
['osc_bridge', 'teleop_handler', 'pytouchosc', 'touchosc_msgs', 'touchosc_bridge', 'diagnostics_handler']
[ rosmake ] Checking rosdeps compliance for packages rososc. This may take a few seconds.
Traceback (most recent call last):
File "/opt/ros/electric/ros/bin/rosmake", line 65, in
if rma.main():
File "/opt/ros/electric/ros/tools/rosmake/src/rosmake/engine.py", line 865, in main
self.rosdep_check_result = self.check_rosdep(buildable_packages)
File "/opt/ros/electric/ros/tools/rosmake/src/rosmake/engine.py", line 296, in check_rosdep
failed_rosdeps = r.check()
File "/opt/ros/electric/ros/tools/rosdep/src/rosdep/core.py", line 450, in check
if not self.install_rosdep(r, rdlp, default_yes=False, execute=False, display=display):
File "/opt/ros/electric/ros/tools/rosdep/src/rosdep/core.py", line 532, in install_rosdep
if my_installer.check_presence():
File "/opt/ros/electric/ros/tools/rosdep/src/rosdep/installers.py", line 370, in check_presence
return len(self.get_packages_to_install()) == 0
File "/opt/ros/electric/ros/tools/rosdep/src/rosdep/installers.py", line 367, in get_packages_to_install
return list(set(self.packages) - set(self.pip_detect(self.packages)))
File "/opt/ros/electric/ros/tools/rosdep/src/rosdep/installers.py", line 406, in pip_detect
pop = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
File "/usr/lib/python2.6/subprocess.py", line 623, in __init__
errread, errwrite)
File "/usr/lib/python2.6/subprocess.py", line 1141, in _execute_child
raise child_exception
OSError: [Errno 2] No such file or directory
Traceback (most recent call last):
File "/opt/ros/electric/ros/bin/rosmake", line 65, in
if rma.main():
File "/opt/ros/electric/ros/tools/rosmake/src/rosmake/engine.py", line 865, in main
self.rosdep_check_result = self.check_rosdep(buildable_packages)
File "/opt/ros/electric/ros/tools/rosmake/src/rosmake/engine.py", line 296, in check_rosdep
failed_rosdeps = r.check()
File "/opt/ros/electric/ros/tools/rosdep/src/rosdep/core.py", line 450, in check
if not self.install_rosdep(r, rdlp, default_yes=False, execute=False, display=display):
File "/opt/ros/electric/ros/tools/rosdep/src/rosdep/core.py", line 532, in install_rosdep
if my_installer.check_presence():
File "/opt/ros/electric/ros/tools/rosdep/src/rosdep/installers.py", line 370, in check_presence
return len(self.get_packages_to_install()) == 0
File "/opt/ros/electric/ros/tools/rosdep/src/rosdep/installers.py", line 367, in get_packages_to_install
return list(set(self.packages) - set(self.pip_detect(self.packages)))
File "/opt/ros/electric/ros/tools/rosdep/src/rosdep/installers.py", line 406, in pip_detect
pop = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
File "/usr/lib/python2.6/subprocess.py", line 623, in __init__
errread, errwrite)
File "/usr/lib/python2.6/subprocess.py", line 1141, in _execute_child
raise child_exception
OSError: [Errno 2] No such file or directory