Where are the python modules stored?

Python modules are files containing Python functions, variables, constants, and objects with a .py extension. Understanding where modules are stored helps with troubleshooting errors, managing packages, and working with Python environments.

What are Python Modules?

A Python module is a file containing Python functions, variables, constants, and objects with a .py extension. This file can be imported inside another program to reuse its functionality.

Understanding module locations is helpful for:

  • Troubleshooting import errors
  • Installing third-party packages correctly
  • Creating your own modules
  • Managing multiple Python environments
  • Understanding Python's import system

Python's Module Search Path

When you import a module in Python, the interpreter searches for it in various locations following a specific order. This ordered list of directories is called the module search path.

Standard Library Module Locations

Python's standard library modules come pre-installed with Python and are stored in:

On macOS and Linux:

/usr/lib/python<version>/
/usr/local/lib/python<version>/

On Windows:

C:\Python<version>\Lib\

Third-Party Module Location

Modules installed using package managers like pip are stored separately from the standard library in the "site-packages" directory:

On macOS and Linux:

/usr/local/lib/python<version>/site-packages/
~/.local/lib/python<version>/site-packages/ (for user installations)

On Windows:

C:\Python<version>\Lib\site-packages\
%APPDATA%\Python\Python<version>\site-packages\ (for user installations)

Virtual Environment Module Storage

Virtual environments create isolated Python installations, each with their own module directories:

venv_name/
??? bin/ (or Scripts/ on Windows)
??? include/
??? lib/
    ??? python<version>/
        ??? site-packages/

All modules installed while a virtual environment is active are stored in its site-packages directory.

Finding Module Locations Programmatically

Using sys.path

The sys.path variable shows all directories Python searches for modules:

import sys
for path in sys.path:
    print(path)
/usr/local/lib/python3.9/site-packages
/usr/lib/python39.zip
/usr/lib/python3.9
/usr/lib/python3.9/lib-dynload

Finding a Specific Module's Location

Use the __file__ attribute to find where a specific module is stored:

import os
print("os module location:", os.__file__)

import json
print("json module location:", json.__file__)
os module location: /usr/lib/python3.9/os.py
json module location: /usr/lib/python3.9/json/__init__.py

Using importlib to Find Modules

The importlib.util module provides utilities for finding module specifications:

import importlib.util

# Find module spec
spec = importlib.util.find_spec('math')
if spec:
    print("math module location:", spec.origin)
else:
    print("Module not found")
math module location: built-in

Common Module Storage Locations

Module Type Location Example
Built-in modules Compiled into Python interpreter sys, math, os
Standard library Python installation directory json, datetime, collections
Third-party packages site-packages directory numpy, pandas, requests
Local modules Current working directory Your custom .py files

Conclusion

Python modules are stored in different locations depending on their type - built-in modules are part of the interpreter, standard library modules are in the Python installation directory, and third-party packages are in site-packages. Use sys.path and __file__ to locate specific modules programmatically.

Updated on: 2026-03-24T17:08:39+05:30

4K+ Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements