在源文件中时无法导入模块,但在置于ROOT中时可以导入

时间:2019-03-15 13:52:40

标签: python import

我有一个Python脚本,该脚本从其ROOT目录引用一个模块。 该目录具有以下结构:

tensorflow_2
  Mask_RCNN
    mrcnn
      model.py
    samples
      balloon
        balloon.py

代码如下

import os  
ROO_DIR = os.path.abspath("../../")
print(ROOT_DIR)

/home/mypc/tensorflow_2/Mask_RCNN

from mrcnn.model import log
from samples.balloon import balloon

上述第一个进口货可以毫无问题地运行。 第二个不会运行。可以通过将Balloon.py复制到ROOT目录并声明以下内容来解决它:

import balloon

但是,这并不是我的解决方案,只是对问题的调解。 我已经尝试致电:

export PYTHONPATH="$PYTHONPATH:~/mypc/tensorflow/Mask_RCNN"

将ROOT目录添加到我的pythonpath中。

log是model.py中的函数。

有人可以向我解释为什么可以导入功能但不能导入Balloon.py文件的原因。

顺便说一句,我还没有编写代码。由于ROS限制,我正在运行python 2.7。在python3 virtualenv中运行相同的脚本可获得相同的结果。

1 个答案:

答案 0 :(得分:0)

尝试

import samples.balloon.balloon

from samples.balloon.balloon import someFunction

请注意,balloon.py位于名为balloon的子目录中。

希望这会有所帮助。