from 0 to PyPI in 15 minutes
(hopefully...)
The process of installing, upgrading or publishing Python source code
https://python-packaging-user-guide.readthedocs.org/en/latest/glossary/
            $ mkdir athina
            $ cd athina
            $ python -m venv .venv
            $ source .venv/bin/activate
            $ pip install -U setuptools pip wheel twine
          
        def hi():
    return 'Hi Athens!'
        from setuptools import setup
setup(
    name='athina',
    version='0.1.0',
    description='A sample Python project',
    long_description='Long description of the package should be here.',
    url='https://projectsite.com',
    author='John Doe',
    author_email='john@example.com',
    license='MIT',
    platforms='any',
    py_modules=['athina']
)
        A distribution format that provides metadata and the essential source files needed for installing by a tool like pip, or for generating a Built Distribution.
$ python setup.py sdist
A Distribution format containing files and metadata that only need to be moved to the correct location on the target system, to be installed
A Built Distribution format
$ python setup.py bdist_wheel --universal
https://pypi.python.org
or for testing
https://testpypi.python.org
[distutils]
index-servers=
    pypi
    testpypi
[pypi]
repository = https://pypi.python.org/pypi
username = alefteris
[testpypi]
repository = https://testpypi.python.org/pypi
username = thale
        $ twine register -r testpypi dist/athina-0.1.0.tar.gz
$ twine upload -r testpypi dist/*
$ pip install -i https://testpypi.python.org/pypi athina
Here is a cat packaged