Skip to main content

Make sure you have upgraded version of pip

Windows

py -m pip install --upgrade pip

Linux/MAC OS

python3 -m pip install --upgrade pip

Create a project with the following structure

packaging_tutorial/
├── LICENSE
├── pyproject.toml
├── README.md
├── setup.cfg
├── src/
│   └── example_package/
│       ├── __init__.py
│       └── example.py
└── tests/
touch LICENSE
touch pyproject.toml
touch setup.cfg
mkdir src/mypackage
touch src/mypackage/__init__.py
touch src/mypackage/main.py
mkdir tests

pyproject.toml

This file tells tools like pip and build how to create your project

[build-system]
requires = [
    "setuptools>=42",
    "wheel"
]
build-backend = "setuptools.build_meta"

build-system.requires gives a list of packages that are needed to build your package. Listing something here will only make it available during the build, not after it is installed.

build-system.build-backend is the name of Python object that will be used to perform the build. If you were to use a different build system, such as flit or poetry, those would go here, and the configuration details would be completely different than the setuptools configuration described below.

Setup.cfg setup

Using setup.cfg is a best practice, but you could have a dynamic setup file using setup.py

[metadata]
name = example-pkg-YOUR-USERNAME-HERE
version = 0.0.1
author = Example Author
author_email = author@example.com
description = A small example package
long_description = file: README.md
long_description_content_type = text/markdown
url = https://github.com/pypa/sampleproject
project_urls =
    Bug Tracker = https://github.com/pypa/sampleproject/issues
classifiers =
    Programming Language :: Python :: 3
    License :: OSI Approved :: MIT License
    Operating System :: OS Independent

[options]
package_dir =
    = src
packages = find:
python_requires = >=3.6

[options.packages.find]
where = src

Running the build

Make sure your build tool is up to date

Windows

py -m pip install --upgrade build

Linux/MAC OS

python3 -m pip install --upgrade build

Create the build

py -m build

References

https://packaging.python.org/tutorials/packaging-projects/

Release files for xfms-calculations 0.0.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for xfms-calculations 0.0.2
File Size Uploaded
xfms-calculations-0.0.2.tar.gz 2.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for xfms-calculations 0.0.2
File Interpreter ABI Platform
xfms_calculations-0.0.2-py3-none-any.whl Python 3 none any Details

Total release size:5.0 kB

Release files / xfms-calculations-0.0.2.tar.gz

Download URL xfms-calculations-0.0.2.tar.gz
Size 2.2 kB
Tags Source
SHA-256 checksum
How to use checksums
5d3701cc65692af01904d1030c00b93c65c51672260a8c724ed8fcf860b3b7bf
BLAKE2b-256 checksum
How to use checksums
41bab7d19dbfa83408169e17346f19eb5d0a481e24aed8cef981de9356c70f85
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.12.1

Release files / xfms_calculations-0.0.2-py3-none-any.whl

Download URL xfms_calculations-0.0.2-py3-none-any.whl
Size 2.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
cc4dd2a01315b64c63da5e83c294290ad6054c74c5f559c75eedfdf3589ddb7c
BLAKE2b-256 checksum
How to use checksums
d09fe687f7d0838f1e9598fbdd32a2e6967a535747d16b44a882d71d0fcf6cbd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.12.1

Release history Release notifications | RSS feed

This release

0.0.2 This release

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page