首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用colcon在Robomaker ROS工作区中安装python模块

用colcon在Robomaker ROS工作区中安装python模块
EN

Stack Overflow用户
提问于 2020-09-17 13:56:07
回答 1查看 652关注 0票数 0

我正在用AWS RoboMaker开发一个基于云的机器人应用程序。我正在使用ROS动力学和构建工具科隆

我的机器人应用程序依赖于一个定制的python模块,这个模块必须在我的工作区中。这个python模块是由colcon作为python包构建的,而不是ROS包。此页解释了如何使用catkin实现这一点,但这个例子展示了如何使其适应colcon。最后,我的工作区看起来是这样的:

代码语言:javascript
复制
my_workspace/
        |--src/
            |--my_module/
            |     |--setup.py
            |     |--package.xml
            |     |--subfolders and python scripts...
            |--some_ros_pkg1/  
            |--some_ros_pkg2/
            |...    

然而,命令:colcon build <my_workspace>构建了所有的ROS包,但是无法将我的python模块构建为一个包。

以下是我遇到的错误:

代码语言:javascript
复制
Starting >>> my-module
[54.297s] WARNING:colcon.colcon_ros.task.ament_python.build:Package 'my-module' doesn't explicitly install a marker in the package index (colcon-ros currently does it implicitly but that fallback will be removed in the future)
[54.298s] WARNING:colcon.colcon_ros.task.ament_python.build:Package 'my-module' doesn't explicitly install the 'package.xml' file (colcon-ros currently does it implicitly but that fallback will be removed in the future)



--- stderr: my-module                                                                     
usage: setup.py [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] ...]
   or: setup.py --help [cmd1 cmd2 ...]
   or: setup.py --help-commands
   or: setup.py cmd --help

error: invalid command 'egg_info'
---
Failed   <<< my-module [0.56s, exited with code 1]

我发现了似乎相关的本期,因此尝试了:pip install --upgrade setuptools ...Which在错误消息中失败了:

代码语言:javascript
复制
Collecting setuptools
  Using cached https://files.pythonhosted.org/packages/7c/1b/9b68465658cda69f33c31c4dbd511ac5648835680ea8de87ce05c81f95bf/setuptools-50.3.0.zip
    Complete output from command python setup.py egg_info:
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "setuptools/__init__.py", line 16, in <module>
        import setuptools.version
      File "setuptools/version.py", line 1, in <module>
        import pkg_resources
      File "pkg_resources/__init__.py", line 1365
        raise SyntaxError(e) from e
                                ^
    SyntaxError: invalid syntax
    
    ----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-uwFamt/setuptools/

对于pip3 install --upgrade setuptools,我得到:

代码语言:javascript
复制
Defaulting to user installation because normal site-packages is not writeable
Requirement already up-to-date: setuptools in /home/ubuntu/.local/lib/python3.5/site-packages (50.3.0)

我有Python3.5.2和Python2.7,但我不知道colcon使用哪一个。

所以我不知道下一步该做什么,真正的问题是什么。欢迎任何帮助!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-09-22 16:19:28

我设法正确地安装了我的包及其依赖项。我开发了下面的方法,以防万一有一天会对某人有所帮助!

我主要受到这个旧的DeepRacer存储库的启发。

问题中的工作区树是错误的。它应该是这样的:

代码语言:javascript
复制
my_workspace/
        |--src/
            |--my_wrapper_package/
            |     |--setup.py
            |     |--my_package/
            |          |--__init__.py
            |          |--subfolders and python scripts...
            |--some_ros_pkg1/  
            |--some_ros_pkg2/
  • my_wrapper_package可能包含多个python自定义包。
  • 一个很好的setup.py示例是这一个
  • 您不应该在package.xml旁边放置一个setup.py:colcon只会查看package.xml中声明的依赖项,而不会收集pip包。
  • 有时,删除install/build/中的colcon生成的文件夹install/可能会有所帮助。这样你就会迫使colcon从头开始重建和捆绑。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63939679

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档