为啥我无法在 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?的主要内容,如果未能解决你的问题,请参考以下文章
无法在 TypeScript 中导入 Google Storage