Flit is a simple way to put Python packages and modules on PyPI.
Say you're writing a module foobar
—either as a single file foobar.py
,
or as a directory—and you want to distribute it.
Make sure that foobar's docstring starts with a one-line summary of what the module is, and that it has a
__version__
:"""An amazing sample package!""" __version__ = '0.1'
Create a file
flit.ini
next to the module. It should look like this:[metadata] module=foobar author=Sir Robin author-email=robin@camelot.uk home-page=http://github.com/sirrobin/foobar # If you want command line scripts, this is how to declare them. # If not, you can leave this section out completely. [scripts] # foobar:main means the script will do: from foobar import main; main() foobar=foobar:main
You can use
flit init
to easily create a basicflit.ini
file for your package.Besides the details shown above, there are other fields you can add—see the flit.ini page of the docs.
Install flit if you don't already have it:
pip install flit
Run this command to upload your code to PyPI:
flit wheel --upload
If your package is not registered on PyPI yet, flit will try to register it for you during the upload step.
To install a package locally for development, run:
flit install [--symlink]
Note
Flit only creates packages in the new 'wheel' format. People using older versions of pip (<1.5) or easy_install will not be able to install them. People may also want a traditional sdist for other reasons, such as Linux distro packaging. I hope that these problems will diminsh over time.
Flit packages a single importable module or package at a time, using the import name as the name on PyPI. All subpackages and data files within a package are included automatically.
Flit requires Python 3, but you can use it to distribute modules for Python 2, so long as they can be imported on Python 3.