Python Modules & Packages

Creating and using modules, packages, import system, and virtual environments.

Import Basics

# Import module
import math
math.sqrt(16)

# Import with alias
import numpy as np

# Import specific
from math import sqrt, pi

Creating Modules

# mymodule.py
def greet(name):
    return f"Hello {name}"

# main.py
import mymodule
print(mymodule.greet("Alice"))

Package Structure

# Folder structure
mypackage/
    __init__.py
    module1.py
    module2.py

# Import from package
from mypackage import module1

__init__.py

# mypackage/__init__.py
from .module1 import function1
from .module2 import function2

__all__ = ["function1", "function2"]

Relative Imports

# In subpackage/module3.py
from . import module4
from .. import module1

Module Variables

# Check if run directly
if __name__ == "__main__":
    print("Running directly")

# Module name
print(__name__)

Virtual Environments

# Create venv
python -m venv myenv

# Activate Windows
myenv\Scripts\activate

# Activate Linux/Mac
source myenv/bin/activate

# Install packages
pip install requests

# Freeze
pip freeze > requirements.txt

Import Variations

# Import all
from math import *

# Import with rename
from math import sqrt as square_root