Quick Fix:
Python raises the
ImportError: No module named 'time-machine'
when it cannot find the library
time-machine
. The most frequent source of this error is that you haven’t installed
time-machine
explicitly with
pip install time-machine
. Alternatively, you may have different
Python versions
on your computer, and
time-machine
is not installed for the particular version you’re using.
In particular, you can try any of the following commands, depending on your concrete environment and installation needs:
💡 If you have only one version of Python installed:pip install time-machine
💡 If you have Python 3 (and, possibly, other versions) installed:pip3 install
💡 If you don't have PIP or it doesn't work
time-machine
python -m pip install
💡 If you have Linux and you need to fix permissions (any one):python3 -m pip install
time-machine
time-machine
sudo pip3 install
💡 If you have Linux with aptpip3 install
time-machine
--user
time-machine
sudo apt install
💡 If you have Windows and you have set up the
time-machine
py
aliaspy -m pip install
💡 If you have Anaconda
time-machine
conda install -c anaconda
💡 If you have Jupyter Notebook
time-machine
!pip install
time-machine
!pip3 install
time-machine
Problem Formulation
You’ve just learned about the awesome capabilities of the
time-machine
library and you want to try it out, so you start your code with the following statement:
import time-machine
This is supposed to import the time-machine library into your
(virtual) environment
. However, it only throws the following
ImportError: No module named time-machine
:
>>> import time-machine Traceback (most recent call last): File "<pyshell#6>", line 1, in <module> import time-machine ModuleNotFoundError: No module named 'time-machine'
Solution Idea 1: Install Library time-machine
The most likely reason is that Python doesn’t provide
time-machine
in its standard library. You need to install it first!
Before being able to import the
time-machine
module, you need to install it using Python’s package manager
pip
.
Make sure pip is installed on your machine.
To fix this error, you can run the following command in your Windows shell:
$ pip install time-machine
This simple command installs
time-machine
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 time-machine
💡
Note
: Don’t copy and paste the
$
symbol. This is just to illustrate that you run it in your shell/terminal/command line.
Solution Idea 2: Fix the Path
The error might persist even after you have installed the
time-machine
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 time-machine
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
time-machine
for Python 3, you may want to trypython3 -m pip install time-machine
or evenpip3 install time-machine
instead ofpip install time-machine
-
If you face this issue server-side, you may want to try the command
pip install --user time-machine
-
If you’re using Ubuntu, you may want to try this command:
sudo apt install time-machine
- 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 time-machine
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)