Skip to main content

A small example package

Project description

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

ramagopr-myproject-0.0.2.tar.gz (2.2 kB view details)

Uploaded Source

Built Distribution

ramagopr_myproject-0.0.2-py3-none-any.whl (2.7 kB view details)

Uploaded Python 3

File details

Details for the file ramagopr-myproject-0.0.2.tar.gz.

File metadata

  • Download URL: ramagopr-myproject-0.0.2.tar.gz
  • Upload date:
  • Size: 2.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.15.0 pkginfo/1.7.1 requests/2.20.1 setuptools/41.4.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/2.7.17

File hashes

Hashes for ramagopr-myproject-0.0.2.tar.gz
Algorithm Hash digest
SHA256 199ba6a4feef50754893c934ed8971a26d7189703fc26903d340e44506408825
MD5 86c88a80dd1cd212459745c45dc28904
BLAKE2b-256 33b440c6a5198d0d6c1db58ad24a20cb4a56c1e3cf06c4866ddafe98d12b23f5

See more details on using hashes here.

File details

Details for the file ramagopr_myproject-0.0.2-py3-none-any.whl.

File metadata

  • Download URL: ramagopr_myproject-0.0.2-py3-none-any.whl
  • Upload date:
  • Size: 2.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.15.0 pkginfo/1.7.1 requests/2.20.1 setuptools/41.4.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/2.7.17

File hashes

Hashes for ramagopr_myproject-0.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 32f3a108ce52d757eeb26cba0fe93a99c90903a5ad1a2ad95e3e3961b68ace72
MD5 8a93f3b92986d7d3b0f995f8fcd8b2ec
BLAKE2b-256 a9673f5cab7e31a646c6d6c0ddeaecdee927f30bbcdaa194b41f2dd7f02eaf29

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