为什么我无法在工作目录中导入模块?

时间:2018-09-25 19:21:00

标签: python

所以我有一堆要运行的代码。

一方面,我已经设置了工作目录并执行了存储在其中的代码。

cd /Users/abrahammathew/Desktop/object_detection_cats/object_detection/

python3 export_inference_graph.py \
    --input_type image_tensor \
    --pipeline_config_path data/ssd_mobilenet_v1_pets.config \
    --trained_checkpoint_prefix data/model.ckpt-997 \
    --output_directory object_detection_graph

但是,这会产生此错误。

from object_detection import exporter
Traceback (most recent call last):

  File "<ipython-input-20-0bc5d13491d6>", line 1, in <module>
    from object_detection import exporter

ImportError: cannot import name 'exporter'

这没有意义,因为导出器文件位于工作目录中。

contents in my directory

为什么导入命令不起作用?

我去尝试通过仅设置os.chdir然后导入将其导入Spyder中,但这也会导致错误。

os.chdir('/Users/abrahammathew/Desktop/object_detection_cats/object_detection')

import exporter  ### THIS WORKS!!!!!

from object_detection import exporter
Traceback (most recent call last):

  File "<ipython-input-23-0bc5d13491d6>", line 1, in <module>
    from object_detection import exporter

ImportError: cannot import name 'exporter'

1 个答案:

答案 0 :(得分:0)

工作目录位于object_detection目录中。为了使import object_detection工作,您需要位于 parent 目录/Users/abrahammathew/Desktop/object_detection_cats中。所以:

  1. 在父目录下工作(对于旧版本的Python,您可能需要在__init__.py中创建一个空的object_detection,但是现代版本使用隐式命名空间包,因此__init__.py不应该不需要),或
  2. 将导入更改为仅import exporter(这是工作目录中的一个模块,其本身就是如此)。