首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从python内部触发catkin构建过程

从python内部触发catkin构建过程
EN

Stack Overflow用户
提问于 2020-01-06 21:10:32
回答 1查看 774关注 0票数 2

我正在编写一个python脚本来组织一个由几个repos组成的项目。其中一些目标是使用catkin构建的。由于catkin是一个python工具,我怀疑一定有一种方法可以从python脚本中调用与catkin build等效的工具。然而,我正在努力做到这一点。到目前为止,我做过的最接近的是:

代码语言:javascript
复制
from catkin_tools.commands import catkin
catkin.main(["build"])

然而,这在我看来是不正确的,除了在完成构建过程后,我最终得到了:

代码语言:javascript
复制
Exception ignored in: <bound method BaseEventLoop.__del__ of <_UnixSelectorEventLoop running=False closed=True debug=False>>
Traceback (most recent call last):
  File "/home/user/.local/lib/python3.6/site-packages/trollius/base_events.py", line 395, in __del__
  File "/home/user/.local/lib/python3.6/site-packages/trollius/unix_events.py", line 65, in close
  File "/home/user/.local/lib/python3.6/site-packages/trollius/unix_events.py", line 166, in remove_signal_handler
  File "/usr/lib/python3.6/signal.py", line 47, in signal
TypeError: signal handler must be signal.SIG_IGN, signal.SIG_DFL, or a callable object

有没有一些python的方法可以用运行中的python程序来构建catkin包?

EN

回答 1

Stack Overflow用户

发布于 2020-01-13 21:27:43

事实证明,我看到的异常是因为在python3.6中没有正确支持trollius。在最新版本的catkin_tools中,trollius is replaced by asyncio。由于此更改不能通过pip或apt install获得,因此我必须从源安装catkin。

此外,我解决问题的方式当然是可以改进的,但目前是有效的。

代码语言:javascript
复制
from catkin_tools.commands import catkin
try:
   catkin.main(["build","testtarget","--cmake-args","-DFLAG"])
except SystemExit as ret:
   if ret.code == 0:
      return True
   else:
      return False
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59612739

复制
相关文章

相似问题

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