为啥我无法在 Google Colab 中导入 python-rosbag?

Posted

技术标签:

【中文标题】为啥我无法在 Google Colab 中导入 python-rosbag?【英文标题】:Why can't I import python-rosbag in Google Colab?为什么我无法在 Google Colab 中导入 python-rosbag? 【发布时间】:2019-06-28 23:39:21 【问题描述】:

我正在尝试使用 Google Colab 运行在 Ubuntu 上开发的https://github.com/ARiSE-Lab/deepTest 深度神经网络软件。 我只需稍加修改即可运行 install.sh。 加载成功,加“!”后:

! sudo apt-get install python-rosbag ! sudo apt-get install python-genmsg ! sudo apt-get install python-genpy ! sudo apt-get install python-rosgraph-msgs1 这安装了许多文件,包括:

Setting up python-rosbag (1.13.5+ds1-3) ...

但是,当我运行程序 generate_hmb3.py 时,其第二行是:

import rosbag

我收到了无效的语法错误消息。当我将行改为阅读时:

import python-rosbag

我收到了消息:

  File "<ipython-input-12-37a7e266f3af>", line 7
import python-rosbag
             ^
SyntaxError: invalid syntax

有解决这个问题的办法吗?

【问题讨论】:

有什么建议@AntonMatosov? @Anton Matosov 想法@Lahiru Karunaratne? 任何想法@fet.atas ? 任何想法@Danf ? 如果您想知道您的安装位置,请尝试例如:find / -name "*rosbag*"。但是,您似乎可以将 ROS 安装安装到某个虚拟环境中。?只需像here 解释的那样从终端安装 ROS,或者安装到你的 python 可以找到它的环境中 【参考方案1】:

导入问题

确保您已设置 Python 路径,这应通过 source 命令完成。您可以通过

轻松检查正确的路径
echo $PYTHONPATH
# which gives me
/opt/ros/kinetic/lib/python2.7/dist-packages

用破折号导入模块:

python 的导入名称中不允许使用破折号 (ref)。并且没有任何称为python-rosbag 的标准模块。据我所知,只有rosbag。如果它是您自己编写的模块,您可以使用__import__() 来完成。例如:

foobar = __import__("foo-bar")

但您确实应该重命名模块。

【讨论】:

谢谢@Tik0。我做了以下事情: 谢谢@Tik0。我做了以下事情:!哪个蟒蛇。并得到:/usr/local/bin/python。然后我问:! python --version Python 2.7.15+ 。然后我问:!find / -name "rosbag"。我得到了很多,包括: /usr/lib/python2.7/dist-packages/rosbag /usr/lib/python2.7/dist-packages/rosbag/rosbag_main.py /usr/lib/python2.7/dist-包/rosbag/rosbag_main.pyc【参考方案2】:

我尝试了很多不同的东西*,我认为这是 ros 仍在使用 python 2.7 的问题。

我实际上无法让它按预期工作,但使用 https://github.com/event-driven-robotics/importRosbag 对我有用。

* 就像从 python2.7 添加路径和摆弄 importlib 和 imp。无法让它工作;我收到一个错误AttributeError: module 'rospy' has no attribute 'names'

【讨论】:

以上是关于为啥我无法在 Google Colab 中导入 python-rosbag?的主要内容,如果未能解决你的问题,请参考以下文章

在Google Colab中导入一个本地模块或.py文件

无法在 Colab 中导入 ToTensorV2

为啥该代码段无法在 Google Colab 上运行?

无法在 TypeScript 中导入 Google Storage

为啥 POD 文件无法在 Xcode 中导入目标项目头文件?

在数组中导入数据集时,谷歌 colab 中的 ram 用完了