Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Standard Project Layout | Python Project Structure & Packaging Basics
Python Packaging and Distribution

bookStandard Project Layout

When creating a Python project for sharing or distribution, using a standard directory structure makes the code easier to understand, maintain, and package. It separates source code, tests, documentation, and configuration so each part is easy to manage.

A common and recommended layout places the main package inside a src/ directory to prevent import issues. Projects typically also include a tests/ folder, a README.md, a LICENSE, and configuration files like pyproject.toml or setup.cfg for packaging and build settings.

# my_package_project/
# ├── src/
# │   └── my_package/
# │       ├── __init__.py
# │       └── core.py
# ├── tests/
# │   └── test_core.py
# ├── README.md
# ├── LICENSE
# └── pyproject.toml

In this structure, the src/ directory holds your actual package code inside my_package/. The __init__.py file marks it as a package, and files like core.py contain the main logic. The tests/ folder includes test files such as test_core.py. The README.md explains usage, the LICENSE defines usage terms, and pyproject.toml stores build and package metadata.

This layout prevents common issues like wrong imports or extra files in the distribution and follows Python packaging standards, making the project easier to test, share, and maintain.

Note
Note

Using a src/ layout is considered best practice for modern Python packages and helps catch import-related errors early.

question mark

In a standard Python project layout, where is the main package source code typically placed?

Select the correct answer

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 1. Kapittel 3

Spør AI

expand

Spør AI

ChatGPT

Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår

Suggested prompts:

Can you explain more about what goes into the pyproject.toml file?

What are some best practices for writing tests in the tests/ folder?

How do I publish my package once I have this structure set up?

bookStandard Project Layout

Sveip for å vise menyen

When creating a Python project for sharing or distribution, using a standard directory structure makes the code easier to understand, maintain, and package. It separates source code, tests, documentation, and configuration so each part is easy to manage.

A common and recommended layout places the main package inside a src/ directory to prevent import issues. Projects typically also include a tests/ folder, a README.md, a LICENSE, and configuration files like pyproject.toml or setup.cfg for packaging and build settings.

# my_package_project/
# ├── src/
# │   └── my_package/
# │       ├── __init__.py
# │       └── core.py
# ├── tests/
# │   └── test_core.py
# ├── README.md
# ├── LICENSE
# └── pyproject.toml

In this structure, the src/ directory holds your actual package code inside my_package/. The __init__.py file marks it as a package, and files like core.py contain the main logic. The tests/ folder includes test files such as test_core.py. The README.md explains usage, the LICENSE defines usage terms, and pyproject.toml stores build and package metadata.

This layout prevents common issues like wrong imports or extra files in the distribution and follows Python packaging standards, making the project easier to test, share, and maintain.

Note
Note

Using a src/ layout is considered best practice for modern Python packages and helps catch import-related errors early.

question mark

In a standard Python project layout, where is the main package source code typically placed?

Select the correct answer

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 1. Kapittel 3
some-alt