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

1 1

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

Heroku

Build apps, not infrastructure.

Dealing with servers, hardware, and infrastructure can take up your valuable time. Discover the benefits of Heroku, the PaaS of choice for developers since 2007.

Visit Site

Top comments (0)

A Workflow Copilot. Tailored to You.

Pieces.app image

Our desktop app, with its intelligent copilot, streamlines coding by generating snippets, extracting code from screenshots, and accelerating problem-solving.

Read the docs