The Ultimate Guide You Need To Publish Your Python Package In Just 3 Easy Steps

A reply to The Ultimate Guide You Need To Publish Your Python Package In Just 9 Easy Steps, using poetry instead of a setup.py script.

I will focus on the steps only, you can read a better and fuller article here.

Install all the things

I am assuming you have python and poetry installed, if you do not have it, install it.

1. Create a package

$ poetry new sample-package
Created package sample-package in sample-package

This will create the project layout:

sample-package/
├── sample-package/
│   └── __init__.py
├── tests/
│   ├── __init__.py
│   └── test_sample-package.py
├── pyproject.toml
└── README.rst

2. Describe your package in pyproject.toml

Here is where you say what your package does and define dependencies.

For example:

[tool.poetry]
name = "sample-package"
version = "0.0.1"
description = "Sample Description for your sample file"
authors = ["John Doe <[email protected]>"]

[tool.poetry.dependencies]
# Updated Python version
python = "^3.6"

[tool.poetry.dev-dependencies]
pytest = "^3.0"

[build-system]
requires = ["poetry>=0.12"]
build-backend = "poetry.masonry.api"

X. Write Your Package

There isn't a reason to publish an empty package, make sure it does something.

3. Publish it!

After your package works, all test pass, etc., you want to make it available to the world, lets build:

$ poetry build

Testing Publish via TestPyPi

This is optional, highly recommended.

Add Test PyPi as a package repository

$ poetry config repositories.testpypi https://test.pypi.org/legacy/

Publish it to Test PyPi:

$ poetry publish -r testpypi

Install it from Test PyPi

pip install --index-url https://test.pypi.org/simple/ flake8-markdown

Really Publish it

If all is good, and ready to make it public:

poetry publish

NOTES

  1. If you are new to Poetry, read the docs
  2. You need an account in Test PyPi and PyPi, register if you haven't

48