start-jsk / rtmros_common

OpenRTM - ROS interoperability packages
http://wiki.ros.org/rtmros_common
12 stars 52 forks source link

(.deb only) python modules are installed directly under lib/python2.7/dist-packages #211

Closed k-okada closed 10 years ago

k-okada commented 10 years ago

From gm130s on September 22, 2013 03:22:12

Many Python modules from only rtm-ros-robotics are installed under /opt/ros/groovy/lib/python2.7/dist-packages for Groovy (with eg. ros-groovy-rtmros-hironx_1.0.0-5precise-20130921-0000-+0000).

Although I need to look more into Python installation rule in ROS, I have a feeling that this isn't right. AFAI see, most of or all python modules that are installed there without being contained in a subfolder are from rtm-ros-robotics).

$ ls /opt/ros/groovy/lib/python2.7/dist-packages/*.py
/opt/ros/groovy/lib/python2.7/dist-packages/AbsoluteForceSensorService_idl.py
/opt/ros/groovy/lib/python2.7/dist-packages/AutoBalancerService_idl.py
/opt/ros/groovy/lib/python2.7/dist-packages/ClockGenerator_idl.py
/opt/ros/groovy/lib/python2.7/dist-packages/CollisionDetector_idl.py
/opt/ros/groovy/lib/python2.7/dist-packages/CollisionDetectorService_idl.py
/opt/ros/groovy/lib/python2.7/dist-packages/Controller_idl.py
/opt/ros/groovy/lib/python2.7/dist-packages/cv.py
/opt/ros/groovy/lib/python2.7/dist-packages/DataLoggerService_idl.py
/opt/ros/groovy/lib/python2.7/dist-packages/DynamicsSimulator_idl.py
/opt/ros/groovy/lib/python2.7/dist-packages/ExecutionProfileService_idl.py
/opt/ros/groovy/lib/python2.7/dist-packages/ForwardKinematicsService_idl.py
/opt/ros/groovy/lib/python2.7/dist-packages/GraspControllerService_idl.py
/opt/ros/groovy/lib/python2.7/dist-packages/HRPDataTypes_idl.py
/opt/ros/groovy/lib/python2.7/dist-packages/hrpsys_config.py
/opt/ros/groovy/lib/python2.7/dist-packages/Img_idl.py
/opt/ros/groovy/lib/python2.7/dist-packages/ImpedanceControllerService_idl.py
/opt/ros/groovy/lib/python2.7/dist-packages/KalmanFilterService_idl.py
/opt/ros/groovy/lib/python2.7/dist-packages/ModelLoader_idl.py
/opt/ros/groovy/lib/python2.7/dist-packages/NullService_idl.py
/opt/ros/groovy/lib/python2.7/dist-packages/OGMap3DService_idl.py
/opt/ros/groovy/lib/python2.7/dist-packages/OnlineViewer_idl.py
/opt/ros/groovy/lib/python2.7/dist-packages/OpenHRPCommon_idl.py
/opt/ros/groovy/lib/python2.7/dist-packages/PathPlanner_idl.py
/opt/ros/groovy/lib/python2.7/dist-packages/pointcloud_idl.py
/opt/ros/groovy/lib/python2.7/dist-packages/RobotHardwareService_idl.py
/opt/ros/groovy/lib/python2.7/dist-packages/rtm.py
/opt/ros/groovy/lib/python2.7/dist-packages/SequencePlayerService_idl.py
/opt/ros/groovy/lib/python2.7/dist-packages/ServoControllerService_idl.py
/opt/ros/groovy/lib/python2.7/dist-packages/SoftErrorLimiterService_idl.py
/opt/ros/groovy/lib/python2.7/dist-packages/StabilizerService_idl.py
/opt/ros/groovy/lib/python2.7/dist-packages/StateHolderService_idl.py
/opt/ros/groovy/lib/python2.7/dist-packages/TimeKeeperService_idl.py
/opt/ros/groovy/lib/python2.7/dist-packages/TorqueFilterService_idl.py
/opt/ros/groovy/lib/python2.7/dist-packages/ViewSimulator_idl.py
/opt/ros/groovy/lib/python2.7/dist-packages/VirtualForceSensorService_idl.py
/opt/ros/groovy/lib/python2.7/dist-packages/waitInput.py
/opt/ros/groovy/lib/python2.7/dist-packages/WavPlayerService_idl.py
/opt/ros/groovy/lib/python2.7/dist-packages/World_idl.py

Original issue: http://code.google.com/p/rtm-ros-robotics/issues/detail?id=213

k-okada commented 10 years ago

From kei.ok...@gmail.com on September 21, 2013 18:13:04

My understanding is that hrpsys-base is designed to do so. File a ticket at https://code.google.com/p/hrpsys-base/issues/detail?id=138

k-okada commented 10 years ago

From gm130s on September 22, 2013 03:40:14

Reference: http://ros.org/reps/rep-0122.html#lib "This directory follows the standard Python specification for the target platform, which may be lib/pythonX.Y/dist-packages, ..."

Although I haven't been able to find any Python reference about placing Python modules directly under dist-packages, I know ROS coredev team doesn't like common directories to be cluttered (eg. they don't like to add any binary to $catkin$/install/bin in favor of rosrun, even RViz isn't an exception).

k-okada commented 10 years ago

From gm130s on October 08, 2013 22:48:23

hrpsys is updated to fix this issue (ref. http://code.google.com/p/hrpsys-base/issues/detail?id=138#c4 ). Now we need to:

k-okada commented 10 years ago

From kei.ok...@gmail.com on October 10, 2013 02:43:52

is this correct? http://jenkins.jsk.imi.i.u-tokyo.ac.jp:8080/job/hironx-catkin/246/console has following error

loading file://< http://jenkins.jsk.imi.i.u-tokyo.ac.jp:8080/job/hironx-catkin/ws/catkin_ws/src/rtm-ros-robotics/rtmros_hironx/hironx_ros_bridge/models/kawada-hironx.dae > Traceback (most recent call last): File "< http://jenkins.jsk.imi.i.u-tokyo.ac.jp:8080/job/hironx-catkin/ws/catkin_ws/src/rtm-ros-robotics/rtmros_hironx/hironx_ros_bridge/test/hironx-test.py", > line 6, in import hironx File "< http://jenkins.jsk.imi.i.u-tokyo.ac.jp:8080/job/hironx-catkin/ws/catkin_ws/src/rtm-ros-robotics/rtmros_hironx/hironx_ros_bridge/scripts/hironx.py", > line 14, in from hrpsys.hrpsys_config import * ImportError: No module named hrpsys.hrpsys_config

k-okada commented 10 years ago

From kei.ok...@gmail.com on October 10, 2013 05:36:28

Hi,

It seems we're missing init.py file under lib/python2.7/dist-packages/hrpsys

should I add blank init.py file under python directory, or should I write something in the init.py file?

k-okada commented 10 years ago

From gm130s on October 10, 2013 21:02:29

It seems we're missing init.py file under lib/python2.7/dist-packages/hrpsys

should I add blank init.py file under python directory, or should I write something in the init.py file?

Have you tried calling catkin_python_setup() macro from CMakeLists.txt in hrpsys package? Called appropriately, setup.py should create dist-packages/hrpsys/init.py. That should be the normal way in ROS (but I'm not entirely sure since we're making lots of hacks). http://wiki.ros.org/rospy_tutorials/Tutorials/Makefile

k-okada commented 10 years ago

From gm130s on October 11, 2013 03:23:41

r5692 partially fixes. With it lib/python2.7/dist-packages/hrpsys/__init__.py gets created. Still hrpsys files (hrpsys.so, hrpsys_config.py) remain in dist-packages.

k-okada commented 10 years ago

From gm130s on October 15, 2013 00:23:50

r5693 should fix all (and as noted there, r5692 wasn't appropriate).

Now pull request is opened into Groovy. https://github.com/ros/rosdistro/pull/2374

Status: Fixed

k-okada commented 10 years ago

From gm130s on October 15, 2013 11:29:08

Reopening.

I'm seeing different situations:

Status: Started

k-okada commented 10 years ago

From gm130s on October 15, 2013 11:33:55

Follow-up:

I only see hrpsys.so in catkinws/devel/lib/python2.7/dist-packages (which is expected as said in http://code.google.com/p/hrpsys-base/issues/detail?id=138#c8 but ideally should be moved to the appropriate subfolder)

Many lib*.so files live under ros/groovy/lib.

k-okada commented 10 years ago

From kei.ok...@gmail.com on October 15, 2013 20:51:07

Sorry that I'm not sure what should I fix.

Building from source by catkin, I only see hrpsys.so in catkinws/devel/lib/python2.7/dist-packages (which is expected as said in http://code.google.com/p/hrpsys-base/issues/detail?id=138#c8 but ideally should be moved to the appropriate subfolder) and all .*_idl.py are found in catkinws/devel/lib/python2.7/dist-packages/hrpsys_ros_bridge.

hrpsys_ros_bridge create *_idl.py files by design. http://jenkins.jsk.imi.i.u-tokyo.ac.jp:8080/job/hironx-catkin/ws/catkin_ws/devel/lib/python2.7/dist-packages/hrpsys_ros_bridge/ see catkin.make that has file(COPY ${hrpsys_IDL_DIR} DESTINATION ${PROJECT_SOURCE_DIR}/idl) code, because hrpsys packages does not have hrpsys/idl directory structure which we assume on compilation process.

(which is expected as said in http://code.google.com/p/hrpsys-base/issues/detail?id=138#c8 but ideally should be moved to the appropriate subfolder) If we put hrpsys.so under dist-packages/hrpsys, it produces error when load by from hrpsys import *, with libhrpsysUtil.so not found error, we could use -Xlinkder,rpath to tell hrpsys.so about the path to libhrpsysUtil.so or write path in init.py, but not sure what is the good way as python program. Patches are welcome

Many lib*.so files live under ros/groovy/lib. That's lib files for openhrp3, I'm not sure we should move these file under lib/openhpr3 or other place. http://jenkins.jsk.imi.i.u-tokyo.ac.jp:8080/job/hironx-catkin/ws/catkin_ws/devel/lib/ _idl.py files under http://jenkins.jsk.imi.i.u-tokyo.ac.jp:8080/job/hironx-catkin/ws/catkin_ws/devel/lib/python2.7/dist-packages/ should go to dist-packages/hrpsys,

k-okada commented 10 years ago

From gm130s on October 17, 2013 10:01:22

Okada-sensei, my commnet in http://code.google.com/p/rtm-ros-robotics/issues/detail?id=213#c9 looks very poorly described and therefore made you confused. I'm rephrasing here. Hope this makes sense.

1 This is expected as said in http://code.google.com/p/hrpsys-base/issues/detail?id=138#c8 . But ideally should be moved to the appropriate subfolder, e.g. /opt/ros/groovy/lib/ where many lib.so from all ROS packages are placed.

k-okada commented 10 years ago

From kei.ok...@gmail.com on October 17, 2013 18:16:19

Installing from .deb, I still see .*_idl.py files in two locations; lib/python2.7/dist-packages/hrpsys_ros_bridge and lib/python2.7/dist-packages/hrpsys_ros_bridge.

it seems same location. do you mean lib/python2.7/dist-packages/hrpsys

if we move hrpsys.so undder catkinws/devel/lib/python2.7/dist-packages and call from hrpsys import *, then we have error that hrpsys.so can not file under devel/lib/libHrpsysUtil.so. I think we need to write something init.py but not sure.

k-okada commented 10 years ago

From gm130s on October 20, 2013 07:32:46

Installing from .deb, I still see .*_idl.py files in two locations; lib/python2.7/dist-packages/hrpsys_ros_bridge and lib/python2.7/dist-packages/hrpsys_ros_bridge.

it seems same location. do you mean lib/python2.7/dist-packages/hrpsys

Sorry, right locations are:

`lib/python2.7/dist-packages

and lib/python2.7/dist-packages/hrpsys_ros_bridge.

Does anyone else not see the same situation? If so I'll try in a fresh-installed VM (but will be in a few days).

if we move hrpsys.so undder catkinws/devel/lib/python2.7/dist-packages and call from hrpsys import *, then we have error that hrpsys.so can not file under devel/lib/libHrpsysUtil.so. I think we need to write something init.py but not sure.

Sorry, but I can't get what you mean.. Do you mean you tried hrpsys.so to /lib/python2.7/dist-packages/hrpsys_ros_bridge but saw some errors?

I change it to Enhancement since there might not any official anouncement exists in ROS to keep python2.7/dist-upgrade folder clean (although I think keeping global folder as neat as possible might be always a good idea).

Labels: -Type-Defect Type-Enhancement

k-okada commented 10 years ago

From kei.ok...@gmail.com on October 20, 2013 18:11:58

let's see if this happens in Jenkins http://jenkins.jsk.imi.i.u-tokyo.ac.jp:8080/job/hironx-catkin/ws/catkin_ws/

k-okada commented 10 years ago

From kei.ok...@gmail.com on October 20, 2013 21:42:48

see attachment, there no python files under lib/python2.7/dist-packages.

Attachment: Screenshot_from_2013-10-21 13:37:28.png

k-okada commented 10 years ago

From gm130s on October 21, 2013 16:58:23

hmm...just saw yesterday that the same happened on a fresh-installed machine. Maybe there's something ROS buildfarm specific issue.

k-okada commented 10 years ago

From gm130s on October 21, 2013 17:00:39

With ros-groovy-hrpsys-ros-bridge_1.0.3-0precise-20131021-0447-+0000 all *_idl.py files are gone from lib/python2.7/dist-packages and only exist in lib/python2.7/dist-packages/hrpsys_ros_bridge.

Now only concern left is hrpsys.so.

k-okada commented 10 years ago

From kei.ok...@gmail.com on January 30, 2014 03:10:27

Status: Fixed