Fix Installation Error of ‘unittest’

5/5 - (1 vote)

The unittest module is part of Python’s standard library for a long time. So in most cases, there’s no need to install it using something like pip install unittest. Simply run import unittest in your Python code and it works without installation.

In your Python code:

import unittest

If you try to pip install it, you’ll get the following error Could not find a version that satisfies the requirement unittest that you can fix by not installing it in the first place (it already is)!

PS C:\Users\xcent> pip install unittest
ERROR: Could not find a version that satisfies the requirement unittest (from versions: none)
ERROR: No matching distribution found for unittest

👉 Recommended Tutorial: How to Check ‘unittest‘ Package Version in Python?

Feel free to also check out our full guide on the PyTest framework which is great for testing purposes too!

Python 2 Backport UnitTest2

If you’re using Python 2, you can try installing the unittest2 package that is a backport for unit testing in Python 2.7. Then

pip install unittest2

Then add the following line to your Python code instead of import unittest:

import unittest2

Legacy Solutions to Install UnitTest Module

For some very old Python versions, you may want to try this approach:

Quick Fix: Python raises the ImportError: No module named 'unittest' when it cannot find the library unittest. The most frequent source of this error is that you haven’t installed unittest explicitly with pip install unittest. Alternatively, you may have different Python versions on your computer, and unittest is not installed for the particular version you’re using.

To fix this error, you can run the following command in your Windows shell:

$ pip install unittest

This simple command installs unittest in your virtual environment on Windows, Linux, and MacOS. It assumes that your pip version is updated. If it isn’t, use the following two commands in your terminal, command line, or shell (there’s no harm in doing it anyways):

$ python -m pip install --upgrade pip
$ pip install pandas

💡 Note: Don’t copy and paste the $ symbol. This is just to illustrate that you run it in your shell/terminal/command line.

The error might persist even after you have installed the unittest library. This likely happens because pip is installed but doesn’t reside in the path you can use. Although pip may be installed on your system the script is unable to locate it. Therefore, it is unable to install the library using pip in the correct path.

To fix the problem with the path in Windows follow the steps given next.

Step 1: Open the folder where you installed Python by opening the command prompt and typing where python

Step 2: Once you have opened the Python folder, browse and open the Scripts folder and copy its location. Also verify that the folder contains the pip file.

Step 3: Now open the Scripts directory in the command prompt using the cd command and the location that you copied previously.

Step 4: Now install the library using pip install unittest command. Here’s an analogous example:

After having followed the above steps, execute our script once again. And you should get the desired output.

Other Solution Ideas

  • The ModuleNotFoundError may appear due to relative imports. You can learn everything about relative imports and how to create your own module in this article.
  • You may have mixed up Python and pip versions on your machine. In this case, to install unittest for Python 3, you may want to try python3 -m pip install unittest or even pip3 install unittest instead of pip install unittest
  • If you face this issue server-side, you may want to try the command pip install --user unittest
  • If you’re using Ubuntu, you may want to try this command: sudo apt install unittest
  • You can check out our in-depth guide on installing unittest here.
  • You can also check out this article to learn more about possible problems that may lead to an error when importing a library.

Understanding the “import” Statement

import unittest

In Python, the import statement serves two main purposes:

  • Search the module by its name, load it, and initialize it.
  • Define a name in the local namespace within the scope of the import statement. This local name is then used to reference the accessed module throughout the code.

What’s the Difference Between ImportError and ModuleNotFoundError?

What’s the difference between ImportError and ModuleNotFoundError?

Python defines an error hierarchy, so some error classes inherit from other error classes. In our case, the ModuleNotFoundError is a subclass of the ImportError class.

You can see this in this screenshot from the docs:

You can also check this relationship using the issubclass() built-in function:

>>> issubclass(ModuleNotFoundError, ImportError)
True

Specifically, Python raises the ModuleNotFoundError if the module (e.g., unittest) cannot be found. If it can be found, there may be a problem loading the module or some specific files within the module. In those cases, Python would raise an ImportError.

If an import statement cannot import a module, it raises an ImportError. This may occur because of a faulty installation or an invalid path. In Python 3.6 or newer, this will usually raise a ModuleNotFoundError.

Related Videos

The following video shows you how to resolve the ImportError:

How to Fix : “ImportError: Cannot import name X” in Python?

The following video shows you how to import a function from another folder—doing it the wrong way often results in the ModuleNotFoundError:

How to Call a Function from Another File in Python?

Here’s a full guide on how to install a library on PyCharm.