The easiest way to get an ImportError
in Python is to install Python and open a console, type the following.
from sys import ham
---------------------------------------------------------------------------
ImportError Traceback (most recent call last)
<ipython-input-7-cd4f03518964> in <module>
----> 1 from sys import ham
ImportError: cannot import name 'ham' from 'sys' (unknown location)
Similarly, the easiest way to get a ModuleNotFoundError
is to do the following in console.
import spam
---------------------------------------------------------------------------
ModuleNotFoundError Traceback (most recent call last)
<ipython-input-9-bdb680daeb9f> in <module>
----> 1 import spam
ModuleNotFoundError: No module named 'spam'
A better exercise for individuals already writing some Python would be to create a directory spam
and two subdirectories ham
and eggs
example-app/
├── eggs
└── egg_func.py
└── ham.py
# ham.py
x = 3
y = 4
# eggs/egg_func.py
from ham import x
def print_stuff():
print("although it's defined in eggs, i dont consider to be the real x", x)
If you execute example-app/eggs/egg_func.py
, the console would output the following.
Traceback (most recent call last):
File "example-app/eggs/egg_func.py", line 1, in <module>
from ham import x
ImportError: No module named ham
It's because $PYTHONPATH couldn't find module 'ham', root directory /.../example-app/
. If you add this directory to $PYTHONPATH, they work.
Let's discuss the what(s), why(s), and dig much more deeper during the talk :)