How to import a module given the full path in Python?

Sometimes, we want to import a module given the full path in Python.

In this article, we’ll look at how to import a module given the full path in Python.

How to import a module given the full path in Python?

To import a module given the full path in Python, we can use the importlib.util module.

For instance, if we have the following module:

foo.py:

def hello():
    print('hello')

Then if main.py is in the same folder and we want to use foo.py in it.

We write:

import importlib.util

spec = importlib.util.spec_from_file_location("module.name", "./foo.py")
foo = importlib.util.module_from_spec(spec)
spec.loader.exec_module(foo)
foo.hello()

We call importlib.util.spec_from_file_location with 'module.name' and './foo.py‘ to import the module.

Then we call importlib.util.module_from_spec to import the returned spec object.

Next, we call spec.loader.exec_module with the imported foo module to load it.

And then we call foo.hello to run the hello function in foo.py.

Therefore, 'hello' should be printed.

Conclusion

To import a module given the full path in Python, we can use the importlib.util module.