Skip to main content

A small example package

Project description

https://www.youtube.com/watch?v=v4bkJef4W94 << video >>

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/

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

example_package_akyepitsme-0.0.1.tar.gz (2.4 kB view details)

Uploaded Source

Built Distribution

File details

Details for the file example_package_akyepitsme-0.0.1.tar.gz.

File metadata

File hashes

Hashes for example_package_akyepitsme-0.0.1.tar.gz
Algorithm Hash digest
SHA256 c410ce8fe09c7bdbbdc6f95c2ee3bfbe87758a9a320cfea1c11fe23b89d18551
MD5 ff4b1469c4f0e089a9c147634ea0e1b2
BLAKE2b-256 c2276430f180a74c9712990b2dec0633b4d140665a71bb1ff562f673534f04ee

See more details on using hashes here.

File details

Details for the file example_package_akyepitsme-0.0.1-py3-none-any.whl.

File metadata

File hashes

Hashes for example_package_akyepitsme-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 5508f1b2fb2a118de59fcb6d8e9ad6378913f16efa963a874779b00ac89fb5d0
MD5 b5f10474afde5df43ca4230d3c25df45
BLAKE2b-256 1cf7b4fcbd029564386dc0564c3f075aa30a5757d16b944cf2b8b3a37430322f

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page