【发布时间】:2020-09-19 10:41:17
【问题描述】:
我使用了仅适用于 ROS Indigo 的机器人模拟器。我还必须使用 Tensorflow 和 Jupyter Notebook,所以我用 Python3.6 创建了一个虚拟环境。
我想从笔记本的模拟器包中导入一个文件。因此,在为 virtualenv 获取 bin/activate 之后,我从 catkin 工作区获取 devel/setup.bash。但即使在这样做之后,我也会收到以下错误
ModuleNotFoundError Traceback (most recent call last)
<ipython-input-8-8370e76446ee> in <module>
----> 1 import herbpy
~/my_workspace/devel/lib/python2.7/dist-packages/herbpy/__init__.py in <module>
33 for __execfile in __execfiles:
34 with open(__execfile, 'r') as __fh:
---> 35 exec(__fh.read())
36 del __fh
37 del __execfile
~/my_workspace/devel/lib/python2.7/dist-packages/herbpy/__init__.py in <module>
ModuleNotFoundError: No module named 'herb'
我尝试运行导入此模块的 python 文件(在环境中)。它只与 python2 一起运行。但是用python2,我不能用Tensorflow。
如何在我的笔记本中导入此文件?
【问题讨论】:
-
您可能需要明确地将模块添加到您的路径中。
import sys然后sys.path.insert(0, "/path/to/your/package_or_module") -
@VarunNayak 这样做会为其他模块带来相同的错误。在明确添加这些模块之后。它最终为我提供了 /opt/ros/indigo/lib/python2.7/dist-packages 中文件的语法。我不明白它怎么会在笔记本中出现语法错误,而在其他情况下它工作得很好。
-
一定要用python3吗? Ros indigo 是在 python2 之上设计的。如果你想保证原生 ros 以 python3 为目标,如果你不必使用 ubuntu 14,则可以使用适用于 ubuntu 20 的 ros noetic。
标签: python jupyter-notebook virtualenv ros