Submit a Package to PyPi

Write setup.py

#!/usr/bin/env python

from setuptools import setup

setup(
    name='${PROJECT_NAME}',
    version=${PROJECT_VERSION},
    description='${PROJECT_DESCRIPTION}',
    author='${AUTHOR_NAME}',
    author_email='${AUTHOR_EMAIL}',
    url='${PROJECT_HOME}',
    packages=[ '${PACKAGE_NAME}' ],
    install_requires=[ ... ],
    entry_points={
        'console_scripts': [
            '${PROJECT_NAME} = ${PROJECT_NAME}.__main__:cli',
        ]
    },
    python_requires='>=3.5',
)

Build

./setup.py build
./setup.py sdist

Create an Account on PyPi.org

Visit PyPi.org, and setup ~/.pypirc with an API token...

Submit

pip install --user --upgrade twine
twine upload --sign-with ${GPG_ID} ./dist/*