Related: Replace setup.py with pyproject.toml
Minimal PyPi setup.py
- assuming your package is named
myprogram, have a directory structure like
setup.py myprogram/ __init__.py
- A minimal
setup.pyfor PyPi contains something like:
#!/usr/bin/env python from setuptools import setup, find_packages setup(name='myprogram', packages=find_packages(), version = '0.1.0', description='My program is 2x faster and 1/3 the size of Hello World.', long_description=open('README.rst').read(), author = 'Author Name', url = 'https://github.com/username/myprogram', classifiers=[ 'Development Status :: 4 - Beta', 'Programming Language :: Python', ], install_requires=['numpy','matplotlib>=2.1'], python_requires='>=3.4', )
Pick from the list of classifiers suitable for your project.
- Sign up for PyPi account. It may take several hours to get the confirmation email.
~/.pypircwith the content
[distutils] index-servers = pypi [pypi] repository=https://pypi.python.org/pypi username=<your pypi username>
Note that I did NOT save my password for security.
- In your Python package directory that you want to upload
python setup.py sdist bdist_wheel upload
Now your package is live to the world on PyPi. Anyone can install it via
python -m pip install myprogram
- you MUST increment the
versionnumber for each release, or PyPi will not let you upload
error: Upload failed (400): Binary wheel ‘*-cp36-cp36m-linux_x86_64.whl’ has an unsupported platform tag ‘linux_x86_64’.
You can workaround this by not uploading the wheel, just the source code and your users will compile it on their machine.
python setup.py sdist upload