Problem Formulation
Say, you try to import label_map_util
from the utils
module when running TensorFlow’s object_detection
API. You get the following error message:
>>> from utils import label_map_util Traceback (most recent call last): File "<pyshell#3>", line 1, in <module> from utils import label_map_util ModuleNotFoundError: No module named 'utils'
π¬ Question: How to fix the ModuleNotFoundError: No module named 'utils'
?
Solution Idea 1: Fix the Import Statement
The most common source of the error is that you use the expression from utils import <something>
but Python doesn’t find the utils module. You can fix this by replacing the import statement with the corrected from object_detection.utils import <something>
.
For example, do not use these import statements:
from utils import label_map_util
from utils import visualization_utils as vis_util
Instead, use these import statements:
from object_detection.utils import label_map_util
from object_detection.utils import visualization_utils as vis_util
Everything remains the same except the bolded text.
This, of course, assumes that Python can resolve the object_detection
API. You can follow the installation recommendations here, or if you already have TensorFlow installed, check out the Object Detection API installation tips here.
Solution Idea 2: Modify System Path
Another idea to solve this issue is to append the path of the TensorFlow Object Detection API folder to the system paths so your script can find it easily.
To do this, import the sys
library and run sys.path.append(my_path)
on the path to the object_detection
folder that may reside in /home/.../tensorflow/models/research/object_detection
, depending on your environment.
import sys sys.path.append('path/to/object/detection/folder')
Solution Idea 3: Dirty Copy and Paste
I don’t recommend using this approach but I still want to share it with you for comprehensibility. Try copying the utils
folder from models/research/object_detection
in the same directory as the Python file requiring utils
.
Solution Idea 4: Import Module from Another Folder (Utils)
This is a better variant of the previous approach: use our in-depth guide to figure out a way to import the utils module correctly, even though it may reside on another path. This should usually do the trick.
π Recommended Tutorial: How to Import a Module from Another Path
Resources: You can find more about this issue here, here, and here. Among other sources, these were also the ones that inspired the solutions provided in this tutorial.
Thanks for reading this—feel free to learn more about the benefits of a TensorFlow developer (we need to keep you motivated so you persist through the painful debugging process you’re currently in). π
π Recommended Tutorial: TensorFlow Developer – Income and Opportunity