Ask Your Question

Revision history [back]

Does Tox get along with catkin's setup.py?

Hi all,

I am trying to automate the testing of my package using Tox but not without problems. It seems that Tox doesn't like catkin's setup.py config file, at least the barebones setup.py from catkin's documentation.

Here's my tox.ini config file:

[tox]
envlist = py27, py34

[testenv]
deps =
    catkin_pkg
    rospkg
    coverage
    flake8
    coveralls
    nose
    nose-cov
    nose-cover3
commands = nosetests --with-coverage --cover-package=rospy_utils

It basically tries to execute the tests in a Python 2.7 and 3.4 environments so And here's my setup.pyfile:

#!/usr/bin/env python

from distutils.core import setup
from catkin_pkg.python_setup import generate_distutils_setup

d = generate_distutils_setup(
    # #  don't do this unless you want a globally visible script
    # scripts=['bin/myscript'],
    packages=['rospy_utils'],
    package_dir={'': 'src'}
)

setup(**d)

Both seem ok but, when I run toxon my package root folder I get the following trace from tox:

viki@vROS:[~/devel/mona...src/rospy_utils]$ tox
GLOB sdist-make: /home/viki/devel/monarch/code/trunk/catkin_ws/src/rospy_utils/setup.py
py27 inst-nodeps: /home/viki/devel/monarch/code/trunk/catkin_ws/src/rospy_utils/.tox/dist/rospy_utils-0.2.0.zip
ERROR: invocation failed (exit code 1), logfile: /home/viki/devel/monarch/code/trunk/catkin_ws/src/rospy_utils/.tox/py27/log/py27-4.log
ERROR: actionid=py27
msg=installpkg
cmdargs=[local('/home/viki/devel/monarch/code/trunk/catkin_ws/src/rospy_utils/.tox/py27/bin/pip'), 'install', '--pre', '-U', '--no-deps', '/home/viki/devel/monarch/code/trunk/catkin_ws/src/rospy_utils/.tox/dist/rospy_utils-0.2.0.zip']
env={'ROS_MAVEN_REPOSITORY': 'https://github.com/rosjava/rosjava_mvn_repo/raw/master', 'ROS_DISTRO': 'hydro', 'GNOME_DESKTOP_SESSION_ID': 'this-is-deprecated', 'PYTHONHASHSEED': '1092722124', 'LASR_INSTALL_PATH': '/opt/Loquendo/LASR', 'LESSOPEN': '| /usr/bin/lesspipe %s', 'XDG_SEAT_PATH': '/org/freedesktop/DisplayManager/Seat0', 'ROS_MAVEN_DEPLOYMENT_REPOSITORY': '/home/viki/devel/rosbuild_ws/devel/share/maven', 'CPATH': '/home/viki/devel/rosbuild_ws/devel/include:/home/viki/devel/monarch/code/trunk/catkin_ws/devel/include:/home/viki/devel/catkin_ws/devel/include:/home/viki/devel/monarch/code/trunk/devel/include:/opt/ros/hydro/include', 'LOGNAME': 'viki', 'USER': 'viki', 'PATH': '/home/viki/devel/monarch/code/trunk/catkin_ws/src/rospy_utils/.tox/py27/bin:/home/viki/devel/rosbuild_ws/devel/bin:/home/viki/devel/monarch/code/trunk/catkin_ws/devel/bin:/home/viki/devel/catkin_ws/devel/bin:/home/viki/devel/monarch/code/trunk/devel/bin:/opt/ros/hydro/bin:/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games', 'GNOME_KEYRING_CONTROL': '/tmp/keyring-RJVCk2', 'CMAKE_PREFIX_PATH': '/home/viki/devel/rosbuild_ws/devel:/home/viki/devel/monarch/code/trunk/catkin_ws/devel:/home/viki/devel/catkin_ws/devel:/home/viki/devel/monarch/code/trunk/devel:/opt/ros/hydro', 'LD_LIBRARY_PATH': '/home/viki/devel/rosbuild_ws/devel/lib:/home/viki/devel/monarch/code/trunk/catkin_ws/devel/lib:/home/viki/devel/catkin_ws/devel/lib:/home/viki/devel/monarch/code/trunk/devel/lib:/opt/ros/hydro/lib', 'SSH_AGENT_PID': '2442', 'LANG': 'en_US.UTF-8', 'TERM': 'xterm', 'SHELL': '/bin/bash', 'XDG_SESSION_PATH': '/org/freedesktop/DisplayManager/Session0', 'XDG_SESSION_COOKIE': 'cf0fccd607b7ba15bad9beb400000011-1420981571.218005-898442704', 'SESSION_MANAGER': 'local/vROS:@/tmp/.ICE-unix/2203,unix/vROS:/tmp/.ICE-unix/2203', 'SHLVL': '1', 'MANDATORY_PATH': '/usr/share/gconf/ubuntu-2d.mandatory.path', 'DISPLAY': ':0', 'WINDOWID': '67108869', 'LTTS7_DEFAULTSESSION': '/opt/Loquendo/LTTS7/bin/default.session', 'LTTS_INSTALL_PATH': '/opt/Loquendo/LTTS7', 'ROS_MASTER_URI': 'http://localhost:11311', 'GPG_AGENT_INFO': '/tmp/keyring-RJVCk2/gpg:0:1', 'HOME': '/home/viki', 'PYTHONPATH': '/home/viki/devel/rosbuild_ws/devel/lib/python2.7/dist-packages:/home/viki/devel/monarch/code/trunk/catkin_ws/devel/lib/python2.7/dist-packages:/home/viki/devel/catkin_ws/devel/lib/python2.7/dist-packages:/home/viki/devel/monarch/code/trunk/devel/lib/python2.7/dist-packages:/opt/ros/hydro/lib/python2.7/dist-packages', 'SSH_AUTH_SOCK': '/tmp/keyring-RJVCk2/ssh', 'ROS_MAVEN_PATH': '/home/viki/devel/rosbuild_ws/devel/share/maven:/home/viki/devel/monarch/code/trunk/catkin_ws/devel/share/maven:/opt/ros/hydro/share/maven', 'VIRTUAL_ENV': '/home/viki/devel/monarch/code/trunk/catkin_ws/src/rospy_utils/.tox/py27', 'ROS_ROOT': '/opt/ros/hydro/share/ros', 'GDMSESSION': 'ubuntu-2d', 'DEFAULTS_PATH': '/usr/share/gconf/ubuntu-2d.default.path', 'PKG_CONFIG_PATH': '/home/viki/devel/rosbuild_ws/devel/lib/pkgconfig:/home/viki/devel/monarch/code/trunk/catkin_ws/devel/lib/pkgconfig:/home/viki/devel/catkin_ws/devel/lib/pkgconfig:/home/viki/devel/monarch/code/trunk/devel/lib/pkgconfig:/opt/ros/hydro/lib/pkgconfig', 'ROS_PACKAGE_PATH': '/home/viki/devel/rosbuild_ws/src:/home/viki/devel/monarch/code/trunk/catkin_ws/src:/opt/ros/hydro/share:/opt/ros/hydro/stacks:/opt/ros/hydro/share:/opt/ros/hydro/stacks', 'XDG_CURRENT_DESKTOP': 'Unity', 'ROS_TEST_RESULTS_DIR': '/home/viki/devel/rosbuild_ws/build/test_results', 'DBUS_SESSION_BUS_ADDRESS': 'unix:abstract=/tmp/dbus-HiOgLA6ZII,guid=1587a65cd6dd93256efa7fc1000000ac', '_': '/usr/local/bin/tox', 'XAUTHORITY': '/home/viki/.Xauthority', 'CATKIN_TEST_RESULTS_DIR': '/home/viki/devel/rosbuild_ws/build/test_results', 'DESKTOP_SESSION': 'ubuntu-2d', 'LESSCLOSE': '/usr/bin/lesspipe %s %s', 'XDG_CONFIG_DIRS': '/etc/xdg/xdg-ubuntu-2d:/etc/xdg', 'UBUNTU_MENUPROXY': 'libappmenu.so', 'OLDPWD': '/home/viki/devel/monarch/code/trunk/catkin_ws', 'ROSLISP_PACKAGE_DIRECTORIES': '/home/viki/devel/rosbuild_ws/devel/share/common-lisp:/home/viki/devel/monarch/code/trunk/catkin_ws/devel/share/common-lisp', 'XDG_DATA_DIRS': '/usr/share/ubuntu-2d:/usr/share/gnome:/usr/local/share/:/usr/share/', 'PWD': '/home/viki/devel/monarch/code/trunk/catkin_ws/src/rospy_utils', 'ROS_ETC_DIR': '/opt/ros/hydro/etc/ros', 'COLORTERM': 'gnome-terminal', 'ROS_WORKSPACE': '/home/viki/devel/monarch/code/trunk/catkin_ws', 'LS_COLORS': 'rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=01;31:*.gz=01;31:*.lz=01;31:*.xz=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.axv=01;35:*.anx=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.axa=00;36:*.oga=00;36:*.spx=00;36:*.xspf=00;36:'}
Processing ./.tox/dist/rospy_utils-0.2.0.zip
    Traceback (most recent call last):
      File "<string>", line 20, in <module>
      File "/tmp/pip-_0YxRt-build/setup.py", line 10, in <module>
        package_dir={'': 'src'}
      File "/home/viki/devel/monarch/code/trunk/catkin_ws/src/rospy_utils/.tox/py27/local/lib/python2.7/site-packages/catkin_pkg/python_setup.py", line 76, in generate_distutils_setup
        package = parse_package(package_xml_path)
      File "/home/viki/devel/monarch/code/trunk/catkin_ws/src/rospy_utils/.tox/py27/local/lib/python2.7/site-packages/catkin_pkg/package.py", line 356, in parse_package
        raise IOError('Path "%s" is neither a directory containing a "%s" file nor a file' % (path, PACKAGE_MANIFEST_FILENAME))
    IOError: Path "." is neither a directory containing a "package.xml" file nor a file
    Complete output from command python setup.py egg_info:
    Traceback (most recent call last):

      File "<string>", line 20, in <module>

      File "/tmp/pip-_0YxRt-build/setup.py", line 10, in <module>

        package_dir={'': 'src'}

      File "/home/viki/devel/monarch/code/trunk/catkin_ws/src/rospy_utils/.tox/py27/local/lib/python2.7/site-packages/catkin_pkg/python_setup.py", line 76, in generate_distutils_setup

        package = parse_package(package_xml_path)

      File "/home/viki/devel/monarch/code/trunk/catkin_ws/src/rospy_utils/.tox/py27/local/lib/python2.7/site-packages/catkin_pkg/package.py", line 356, in parse_package

        raise IOError('Path "%s" is neither a directory containing a "%s" file nor a file' % (path, PACKAGE_MANIFEST_FILENAME))

    IOError: Path "." is neither a directory containing a "package.xml" file nor a file

    ----------------------------------------
    Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-_0YxRt-build

It seems that line 10 of setup.py lacks of some parameter that Tox wants but I am yet not very handy neither with setup.py nor tox. I've looked for some info both in the ros wiki and here in answers.ros.org and I did not find anything that could help me work out the problem (In fact, I believe that this is the first toxrelated question).

Any hints here? Has anybody used tox before in ROS?

Does Tox get along with catkin's setup.py?

Hi all,

I am trying to automate the testing of my package using Tox but not without problems. It seems that Tox doesn't like catkin's setup.py config file, at least the barebones setup.py from catkin's documentation.

Here's my tox.ini config file:

[tox]
envlist = py27, py34

[testenv]
deps =
    catkin_pkg
    rospkg
    coverage
    flake8
    coveralls
    nose
    nose-cov
    nose-cover3
commands = nosetests --with-coverage --cover-package=rospy_utils

It basically tries to execute the tests in a Python 2.7 and 3.4 environments so And here's my setup.pyfile:

#!/usr/bin/env python

from distutils.core import setup
from catkin_pkg.python_setup import generate_distutils_setup

d = generate_distutils_setup(
    # #  don't do this unless you want a globally visible script
    # scripts=['bin/myscript'],
    packages=['rospy_utils'],
    package_dir={'': 'src'}
)

setup(**d)

Both seem ok but, when I run toxon my package root folder I get the following trace from tox:

viki@vROS:[~/devel/mona...src/rospy_utils]$ tox
GLOB sdist-make: /home/viki/devel/monarch/code/trunk/catkin_ws/src/rospy_utils/setup.py
py27 inst-nodeps: /home/viki/devel/monarch/code/trunk/catkin_ws/src/rospy_utils/.tox/dist/rospy_utils-0.2.0.zip
ERROR: invocation failed (exit code 1), logfile: /home/viki/devel/monarch/code/trunk/catkin_ws/src/rospy_utils/.tox/py27/log/py27-4.log
ERROR: actionid=py27
msg=installpkg
cmdargs=[local('/home/viki/devel/monarch/code/trunk/catkin_ws/src/rospy_utils/.tox/py27/bin/pip'), 'install', '--pre', '-U', '--no-deps', '/home/viki/devel/monarch/code/trunk/catkin_ws/src/rospy_utils/.tox/dist/rospy_utils-0.2.0.zip']
env={'ROS_MAVEN_REPOSITORY': 'https://github.com/rosjava/rosjava_mvn_repo/raw/master', 'ROS_DISTRO': 'hydro', 'GNOME_DESKTOP_SESSION_ID': 'this-is-deprecated', 'PYTHONHASHSEED': '1092722124', 'LASR_INSTALL_PATH': '/opt/Loquendo/LASR', 'LESSOPEN': '| /usr/bin/lesspipe %s', 'XDG_SEAT_PATH': '/org/freedesktop/DisplayManager/Seat0', 'ROS_MAVEN_DEPLOYMENT_REPOSITORY': '/home/viki/devel/rosbuild_ws/devel/share/maven', 'CPATH': '/home/viki/devel/rosbuild_ws/devel/include:/home/viki/devel/monarch/code/trunk/catkin_ws/devel/include:/home/viki/devel/catkin_ws/devel/include:/home/viki/devel/monarch/code/trunk/devel/include:/opt/ros/hydro/include', 'LOGNAME': 'viki', 'USER': 'viki', 'PATH': '/home/viki/devel/monarch/code/trunk/catkin_ws/src/rospy_utils/.tox/py27/bin:/home/viki/devel/rosbuild_ws/devel/bin:/home/viki/devel/monarch/code/trunk/catkin_ws/devel/bin:/home/viki/devel/catkin_ws/devel/bin:/home/viki/devel/monarch/code/trunk/devel/bin:/opt/ros/hydro/bin:/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games', 'GNOME_KEYRING_CONTROL': '/tmp/keyring-RJVCk2', 'CMAKE_PREFIX_PATH': '/home/viki/devel/rosbuild_ws/devel:/home/viki/devel/monarch/code/trunk/catkin_ws/devel:/home/viki/devel/catkin_ws/devel:/home/viki/devel/monarch/code/trunk/devel:/opt/ros/hydro', 'LD_LIBRARY_PATH': '/home/viki/devel/rosbuild_ws/devel/lib:/home/viki/devel/monarch/code/trunk/catkin_ws/devel/lib:/home/viki/devel/catkin_ws/devel/lib:/home/viki/devel/monarch/code/trunk/devel/lib:/opt/ros/hydro/lib', 'SSH_AGENT_PID': '2442', 'LANG': 'en_US.UTF-8', 'TERM': 'xterm', 'SHELL': '/bin/bash', 'XDG_SESSION_PATH': '/org/freedesktop/DisplayManager/Session0', 'XDG_SESSION_COOKIE': 'cf0fccd607b7ba15bad9beb400000011-1420981571.218005-898442704', 'SESSION_MANAGER': 'local/vROS:@/tmp/.ICE-unix/2203,unix/vROS:/tmp/.ICE-unix/2203', 'SHLVL': '1', 'MANDATORY_PATH': '/usr/share/gconf/ubuntu-2d.mandatory.path', 'DISPLAY': ':0', 'WINDOWID': '67108869', 'LTTS7_DEFAULTSESSION': '/opt/Loquendo/LTTS7/bin/default.session', 'LTTS_INSTALL_PATH': '/opt/Loquendo/LTTS7', 'ROS_MASTER_URI': 'http://localhost:11311', 'GPG_AGENT_INFO': '/tmp/keyring-RJVCk2/gpg:0:1', 'HOME': '/home/viki', 'PYTHONPATH': '/home/viki/devel/rosbuild_ws/devel/lib/python2.7/dist-packages:/home/viki/devel/monarch/code/trunk/catkin_ws/devel/lib/python2.7/dist-packages:/home/viki/devel/catkin_ws/devel/lib/python2.7/dist-packages:/home/viki/devel/monarch/code/trunk/devel/lib/python2.7/dist-packages:/opt/ros/hydro/lib/python2.7/dist-packages', 'SSH_AUTH_SOCK': '/tmp/keyring-RJVCk2/ssh', 'ROS_MAVEN_PATH': '/home/viki/devel/rosbuild_ws/devel/share/maven:/home/viki/devel/monarch/code/trunk/catkin_ws/devel/share/maven:/opt/ros/hydro/share/maven', 'VIRTUAL_ENV': '/home/viki/devel/monarch/code/trunk/catkin_ws/src/rospy_utils/.tox/py27', 'ROS_ROOT': '/opt/ros/hydro/share/ros', 'GDMSESSION': 'ubuntu-2d', 'DEFAULTS_PATH': '/usr/share/gconf/ubuntu-2d.default.path', 'PKG_CONFIG_PATH': '/home/viki/devel/rosbuild_ws/devel/lib/pkgconfig:/home/viki/devel/monarch/code/trunk/catkin_ws/devel/lib/pkgconfig:/home/viki/devel/catkin_ws/devel/lib/pkgconfig:/home/viki/devel/monarch/code/trunk/devel/lib/pkgconfig:/opt/ros/hydro/lib/pkgconfig', 'ROS_PACKAGE_PATH': '/home/viki/devel/rosbuild_ws/src:/home/viki/devel/monarch/code/trunk/catkin_ws/src:/opt/ros/hydro/share:/opt/ros/hydro/stacks:/opt/ros/hydro/share:/opt/ros/hydro/stacks', 'XDG_CURRENT_DESKTOP': 'Unity', 'ROS_TEST_RESULTS_DIR': '/home/viki/devel/rosbuild_ws/build/test_results', 'DBUS_SESSION_BUS_ADDRESS': 'unix:abstract=/tmp/dbus-HiOgLA6ZII,guid=1587a65cd6dd93256efa7fc1000000ac', '_': '/usr/local/bin/tox', 'XAUTHORITY': '/home/viki/.Xauthority', 'CATKIN_TEST_RESULTS_DIR': '/home/viki/devel/rosbuild_ws/build/test_results', 'DESKTOP_SESSION': 'ubuntu-2d', 'LESSCLOSE': '/usr/bin/lesspipe %s %s', 'XDG_CONFIG_DIRS': '/etc/xdg/xdg-ubuntu-2d:/etc/xdg', 'UBUNTU_MENUPROXY': 'libappmenu.so', 'OLDPWD': '/home/viki/devel/monarch/code/trunk/catkin_ws', 'ROSLISP_PACKAGE_DIRECTORIES': '/home/viki/devel/rosbuild_ws/devel/share/common-lisp:/home/viki/devel/monarch/code/trunk/catkin_ws/devel/share/common-lisp', 'XDG_DATA_DIRS': '/usr/share/ubuntu-2d:/usr/share/gnome:/usr/local/share/:/usr/share/', 'PWD': '/home/viki/devel/monarch/code/trunk/catkin_ws/src/rospy_utils', 'ROS_ETC_DIR': '/opt/ros/hydro/etc/ros', 'COLORTERM': 'gnome-terminal', 'ROS_WORKSPACE': '/home/viki/devel/monarch/code/trunk/catkin_ws', 'LS_COLORS': 'rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=01;31:*.gz=01;31:*.lz=01;31:*.xz=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.axv=01;35:*.anx=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.axa=00;36:*.oga=00;36:*.spx=00;36:*.xspf=00;36:'}
Processing ./.tox/dist/rospy_utils-0.2.0.zip
    Traceback (most recent call last):
      File "<string>", line 20, in <module>
      File "/tmp/pip-_0YxRt-build/setup.py", line 10, in <module>
        package_dir={'': 'src'}
      File "/home/viki/devel/monarch/code/trunk/catkin_ws/src/rospy_utils/.tox/py27/local/lib/python2.7/site-packages/catkin_pkg/python_setup.py", line 76, in generate_distutils_setup
        package = parse_package(package_xml_path)
      File "/home/viki/devel/monarch/code/trunk/catkin_ws/src/rospy_utils/.tox/py27/local/lib/python2.7/site-packages/catkin_pkg/package.py", line 356, in parse_package
        raise IOError('Path "%s" is neither a directory containing a "%s" file nor a file' % (path, PACKAGE_MANIFEST_FILENAME))
    IOError: Path "." is neither a directory containing a "package.xml" file nor a file
    Complete output from command python setup.py egg_info:
    Traceback (most recent call last):

      File "<string>", line 20, in <module>

      File "/tmp/pip-_0YxRt-build/setup.py", line 10, in <module>

        package_dir={'': 'src'}

      File "/home/viki/devel/monarch/code/trunk/catkin_ws/src/rospy_utils/.tox/py27/local/lib/python2.7/site-packages/catkin_pkg/python_setup.py", line 76, in generate_distutils_setup

        package = parse_package(package_xml_path)

      File "/home/viki/devel/monarch/code/trunk/catkin_ws/src/rospy_utils/.tox/py27/local/lib/python2.7/site-packages/catkin_pkg/package.py", line 356, in parse_package

        raise IOError('Path "%s" is neither a directory containing a "%s" file nor a file' % (path, PACKAGE_MANIFEST_FILENAME))

    IOError: Path "." is neither a directory containing a "package.xml" file nor a file

    ----------------------------------------
    Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-_0YxRt-build

It seems that line 10 of setup.py lacks of some parameter that Tox wants but I am yet not very handy neither with setup.py nor tox. I've looked for some info both in the ros wiki and here in answers.ros.org and I did not find anything that could help me work out the problem (In fact, I believe that this is the first toxrelated question).

Any hints here? Has anybody used tox before in ROS?