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
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
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
While working as a researcher in distributed systems, Dr. Christian Mayer found his love for teaching computer science students.
To help students reach higher levels of Python success, he founded the programming education website Finxter.com. He’s author of the popular programming book Python One-Liners (NoStarch 2020), coauthor of the Coffee Break Python series of self-published books, computer science enthusiast, freelancer, and owner of one of the top 10 largest Python blogs worldwide.
His passions are writing, reading, and coding. But his greatest passion is to serve aspiring coders through Finxter and help them to boost their skills. You can join his free email academy here.