.bashrc 中的多个源代码行似乎相互覆盖

.bashrc 中的多个源代码行似乎相互覆盖

我有两个包,分别名为 pkg1 和 pkg2。pkg1 是 /home/csbales 中标记为 abc 的工作区的一部分,而 pkg2 是 /home/csbales 中标记为 catkin_ws 的工作区的一部分。为了获取它们以及它们使用的 ROS,我在 .bashrc 中添加了以下三行:

source /opt/ros/melodic/setup.bash
source ~/catkin_ws/devel/setup.bash
source ~/abc/build/devel/setup.bash

我从新终端启动 Pycharm Community,将 pkg2 作为项目文件夹 (~/catkin_ws/src/pkg2)。我想运行一个从两个包导入的 Python 脚本,如下所示:

#!/usr/bin/env python
import sys
# from os import sys, path
# sys.path.append(path.dirname(path.dirname(path.abspath(__file__))))
from pkg2 import Thing2
from pkg1 import Thing1

当我运行 python 脚本时,收到以下错误:

ModuleNotFoundError:没有名为“pkg2”的模块

为了检查 pkg1 是否至少被识别,我切换了 pkg 行的顺序,并收到与之前相同的错误。然后我打开一个新终端,直接使用 source pkg2

source ~/catkin_ws/devel/setup.bash

在终端中,然后使用同一终端打开 Pycharm。当我运行相同的脚本时,我收到以下错误:

ModuleNotFoundError:没有名为“pkg1”的模块

我切换了导入行,使 pkg1 位于 pkg2 之后,然后再次运行它,但 pkg1 出现错误。导入 pkg2 似乎现在可以按预期工作,但 pkg1 却不像以前那样。我尝试切换 .bashrc 中的行,然后打开 Pycharm,但最后未获取的包总是会导致 ModuleNotFoundError,无论是通过终端还是在 .bashrc 中获取。

我尝试重新制作每个工作区。我尝试删除并再次克隆它们。这些都不起作用。我无法将它们合并。为了看看,我尝试在 .bashrc 中移动 ROS 源代码行,发现它的位置对上述行为没有影响。无论如何,ROS 都会工作。我不知道接下来该怎么做,非常感谢任何意见。

可能相关信息:

  • Ubuntu 18.04
  • 使用 Terminator
  • Pycharm 社区
  • Python 3.6

相关内容