DEV Community

Cover image for The Ultimate Guide You Need To Publish Your Python Package In Just 3 Easy Steps
Edmundo Sanchez
Edmundo Sanchez

Posted on • Edited on

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
Enter fullscreen mode Exit fullscreen mode

This will create the project layout:

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

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 <john@doe.com>"]

[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"
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

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/
Enter fullscreen mode Exit fullscreen mode

Publish it to Test PyPi:

$ poetry publish -r testpypi
Enter fullscreen mode Exit fullscreen mode

Install it from Test PyPi

pip install --index-url https://test.pypi.org/simple/ flake8-markdown
Enter fullscreen mode Exit fullscreen mode

Really Publish it

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

poetry publish
Enter fullscreen mode Exit fullscreen mode

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

Top comments (0)