How to retrieve Python module path?

In Python, every module exists in a specific file path within the file system. Sometimes, we need to find out where the module is located to perform different operations, like debugging or verifying the version of the module. In this article, we will explore how to retrieve the file path of a module.

Using __file__ Attribute

The most common way to retrieve a module's path is using the __file__ attribute. This attribute contains the pathname of the file from which the module was loaded.

Standard Library Module

Let's retrieve the path of the built-in os module, which is part of the Python standard library ?

import os
print(os.__file__)
C:\Python313\Lib\os.py

The __file__ attribute gives us the absolute path to the actual .py or .pyc file where the module is defined. This is useful when working with multiple Python environments.

Third-party Module

For third-party modules installed via pip, the path will typically point to the site-packages directory ?

import json
print(json.__file__)
C:\Python313\Lib\json\__init__.py

Using inspect.getfile()

The inspect module provides the getfile() function for introspection. This method works with any Python object and returns the name of the file in which the object was defined ?

import inspect
import math

print(inspect.getfile(math))
print(inspect.getfile(inspect))
C:\Python313\Lib\math.py
C:\Python313\Lib\inspect.py

Getting Module Directory Path

Sometimes you need just the directory path where the module is located. Use os.path.dirname() to extract the directory ?

import os
import sys

module_file = sys.__file__
module_dir = os.path.dirname(module_file)

print("Module file:", module_file)
print("Module directory:", module_dir)
Module file: C:\Python313\Lib\sys.py
Module directory: C:\Python313\Lib

Comparison of Methods

Method Usage Best For
module.__file__ Direct attribute access Simple and quick access
inspect.getfile() Function-based approach Programmatic introspection
os.path.dirname() Combined with above methods Getting directory path only

Conclusion

Use module.__file__ for quick path retrieval or inspect.getfile() for more programmatic approaches. Both methods are reliable for finding where Python modules are located on your system.

Updated on: 2026-03-24T17:00:34+05:30

1K+ Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements