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

For Pycharm Python user
notepad LICENSE
notepad pyproject.toml
notepad setup.cfg
mkdir src/mypackage
notepad src/mypackage/__init__.py
notepad 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

python -m build

Upload Your Code into the TestPyPi

python3 -m pip install --upgrade twine

remove python3 if using windows

Once installed, run Twine to upload all of the archives under dist:

python3 -m twine upload --repository testpypi dist/*

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

DataVipLibraries-0.0.1.tar.gz (7.5 kB view details)

Uploaded Source

Built Distribution

DataVipLibraries-0.0.1-py3-none-any.whl (11.0 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: DataVipLibraries-0.0.1.tar.gz
  • Upload date:
  • Size: 7.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.8.8

File hashes

Hashes for DataVipLibraries-0.0.1.tar.gz
Algorithm Hash digest
SHA256 6f6af3f5c16aa1a795f80de447590a28620089e1bf36d492ff780f040e520a9f
MD5 68e2528ffc435e54c64c0f45d6cc6918
BLAKE2b-256 48fd91814480dcfef8b50bdf35e556bef6864ffb66fdb802ef6feb5a01278538

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for DataVipLibraries-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 1d4247fa3b5608d296b476e70c9592544b875439b0d61685c54352241b10eb56
MD5 0babcc06dcbc8048aa91cc4f73d04db0
BLAKE2b-256 3da70848c54d0eedfabeea77ff398978a49d26a8abf0b41253d8bd9e4066d396

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