Importerror: failed to import test module:
When using modules in Python, you may encounter the ImportError: Failed to import test module error. This error can be caused by several reasons, including a missing module or syntax …
itsourcecode.com hosts 67+ documented fixes for Python ImportError messages: the error class raised when a library is found but a specific name or sub-module within it can’t be imported. Almost every ImportError in modern Python comes from version conflicts: you have the library installed, but the version you have removed/renamed the specific function or class you’re trying to import. Browse the fixes below by library or scenario.
What is the difference between ImportError and ModuleNotFoundError?
This trips up almost every Python developer:
ModuleNotFoundError = the whole package isn’t installed. import requests when requests isn’t pip-installed. Fix with pip install requests. We have a separate ModuleNotFoundError reference (198+ posts).
ImportError = the package IS installed, but a specific name/sub-module within it can’t be imported. from requests import nonexistent. Fix usually means upgrading or downgrading the library to the version that contains that name.
ModuleNotFoundError is actually a subclass of ImportError, introduced in Python 3.6. If you catch ImportError, you catch both.
How to fix any ImportError in 4 steps
Read the exact name and source module in quotes. The error has two parts: what you tried to import and which module it should be in. Example: ImportError: cannot import name 'parse_rule' from 'werkzeug.routing', the name is parse_rule, the module is werkzeug.routing.
Check the installed version of the source library. Run pip show . Note the version number.
Check when the name was added or removed. Look at the library’s CHANGELOG.md, GitHub release notes, or PyPI page. Often a function/class was removed in a major version (e.g., Werkzeug 2.0+ removed many internal helpers).
Pin the working version or update your import. Two paths: (a) Downgrade to the version that has the name: pip install werkzeug<2.0. (b) Find the new import location: from werkzeug.routing.rules import parse_rule (or whatever the new path is). Update your code.
Most common ImportError patterns (in order of frequency)
Library version conflict: name was removed/renamed in a newer version (60%+ of errors here)
Python 2 → 3 migration: collections.Mapping moved to collections.abc.Mapping in Python 3.10
Sub-package reorganization: sklearn moved many internals out of sklearn.externals
Library reorg between versions: Flask, Werkzeug, Jinja2 frequently move internal helpers
Beta or development imports: trying to use features from main branch that aren’t in your installed version
Circular imports: your own code structure has two modules that import each other
DLL load failed: binary dependency (numpy, scipy) needs system library installed
Featured ImportError fixes by source library
🐍 Werkzeug / Flask / Jinja2 (web framework family)
Werkzeug 2.0+ moved many internal helpers. Flask 2.0+ moved imports. Jinja2 3.1+ removed deprecated names.
cannot import name ‘parse_rule’ from ‘werkzeug.routing’
cannot import name ‘cached_property’ from ‘werkzeug’
cannot import name ‘environmentfilter’ from ‘jinja2’
cannot import name ‘escape’ from ‘jinja2’
cannot import name ‘url’ from ‘django.conf.urls’ (Django 4.0+)
🤖 Machine Learning (TensorFlow, PyTorch, sklearn, torchmetrics)
ML libraries reorganize internals frequently between major versions.
cannot import name ‘container_abcs’ from ‘torch._six’
cannot import name ‘get_num_classes’ from ‘torchmetrics’
cannot import name ‘get_config’ from ‘tensorflow’ (eager context)
cannot import name ‘joblib’ from ‘sklearn.externals’
cannot import name ‘safe_weights_name’ from ‘transformers’
numba needs numpy 1.21 or less
🗄️ Database & SQLAlchemy
cannot import name ‘_rfc_1738_quote’ from ‘sqlalchemy.engine.url’
cannot import name ‘bigquery’ from ‘google.cloud’
cannot import name ‘CompilationException’ from ‘dbt.exceptions’
🐍 Python stdlib / typing / collections
Python 3.10+ moved many names between standard library locations. Older code breaks.
cannot import name ‘Mapping’ from ‘collections’ (Py3.10+)
cannot import name ‘TypeAlias’ from ‘typing’ (Py3.10+)
cannot import name ‘ParamSpec’ from ‘typing_extensions’
📦 setuptools / pip / packaging
cannot import name ‘Feature’ from ‘setuptools’, Quick Fixes
cannot import name ‘_unicodefun’ from ‘click’
🔁 Relative imports / circular imports / test modules
attempted relative import beyond top-level package
ImportError while importing test module
Failed to import test module
⚙️ Binary / DLL / native library load failures
Errors at the C-extension level, numpy, scipy, OpenCV, or system libraries.
numpy.core.multiarray failed to import
ImportError: dlopen
Failed to find libmagic, check your installation
Initialization failed (TensorFlow)
Unable to import required dependencies (numpy)
lxml not found, please install it
2026 Updated Guides: featured ImportError fixes
Failed to find libmagic, Quick Fixes: python-magic install
cannot import name ‘Feature’ from ‘setuptools’: setuptools migration
ImportError: dlopen: macOS native library load
Related error categories
ImportError is one of 10 hubs in our Python & JavaScript error reference cluster, 980+ documented fixes total. If your error isn’t an ImportError, jump to the right hub below:
TypeError Reference, 220+ Python & JS TypeError fixes
ModuleNotFoundError Reference, 198+ “No module named X” install errors
AttributeError Reference, 173+ “object has no attribute X” fixes
ValueError Reference, 100+ library-specific Python ValueError fixes
NameError Reference, 49+ Python “name X is not defined” fixes
RuntimeError Reference, 49+ PyTorch CUDA, asyncio, Flask runtime errors
SyntaxError Reference, 48+ Python & JavaScript parsing errors
ReferenceError Reference, 34+ JavaScript “is not defined” fixes
HTTP Error Reference, 35+ HTTP status code fixes
Python Tutorial, beginner-to-intermediate Python lessons
About this ImportError reference
This ImportError reference has been built since 2015 by PIES Information Technology Solutions in Binalbagan, Negros Occidental, Philippines. Every post comes from a real error encountered in production. Used by 12,000+ Python developers monthly across the Philippines, India, the United States, and beyond. If your ImportError isn’t here, send the full traceback to our contact form and we’ll add it.
When using modules in Python, you may encounter the ImportError: Failed to import test module error. This error can be caused by several reasons, including a missing module or syntax …
Being a developer, it’s inevitable to encounter “ImportError: Cannot Import Name ‘Feature’ from ‘Setuptools‘” error. Actually, this error is common among Python developers, especially those working with the setuptools library. …
Being a Python developer, you might have come across an error message that reads “ImportError: dlopen“. This error message can be confusing especially if you are not familiar with what …
Have you encountered Importerror while loading conftest? This error message is common in Python applications, especially when using pytest. In this article, we will discuss what this error message means, …
If you’re a Python programmer, you’ve likely encountered the “ImportError: sys.meta_path is None, Python is likely shutting down” error at some point. So in this article, we’ll explore the causes …
The Importerror: cannot import name ‘get_terminal_size’ from ‘click.termui’ indicates that there is an incompatibility of typer module. In particular, Typer module internally invokes the click module. However, some of click …
The “ImportError: cannot import name ‘ParameterSource’ from ‘click.core‘” occurs when we have an outdated version of the click module. To solve the error, upgrade your versions of the click and …
Have you encountered “ImportError: cannot import name storage from google.cloud unknown location” error message? This error can be frustrating and confusing, especially if you’re not familiar with the Google Cloud …
Working with Python you can not avoid the importerror: cannot import name ‘packagefinder’ from ‘pip._internal.index’ error. So this article aims to provide you with solutions and discuss why this error …
Have a chance to encounter “ImportError: cannot import name ‘html5lib’ from ‘pip._vendor‘”? Well, this error usually appears when you are trying to install or use a Python package that requires …
Have you ever tried to import html5lib but instead have importerror html5lib not found please install it? Well apparently, you have not installed the html5lib. So in this article, we …
Working with Python project, chances to face Importerror: cannot import name ‘joblib’ from ‘sklearn.externals error is inevitable. So this article aims to address the causes and impacts of this error …
One of the common errors you may encounter is the ImportError: cannot import name ugettext_lazy from django.utils.translation. This error can be frustrating to encounter, especially if you’re not familiar with …