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
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6f6af3f5c16aa1a795f80de447590a28620089e1bf36d492ff780f040e520a9f |
|
MD5 | 68e2528ffc435e54c64c0f45d6cc6918 |
|
BLAKE2b-256 | 48fd91814480dcfef8b50bdf35e556bef6864ffb66fdb802ef6feb5a01278538 |
File details
Details for the file DataVipLibraries-0.0.1-py3-none-any.whl
.
File metadata
- Download URL: DataVipLibraries-0.0.1-py3-none-any.whl
- Upload date:
- Size: 11.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.8.8
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1d4247fa3b5608d296b476e70c9592544b875439b0d61685c54352241b10eb56 |
|
MD5 | 0babcc06dcbc8048aa91cc4f73d04db0 |
|
BLAKE2b-256 | 3da70848c54d0eedfabeea77ff398978a49d26a8abf0b41253d8bd9e4066d396 |