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

Billboard image

The Next Generation Developer Platform

Coherence is the first Platform-as-a-Service you can control. Unlike "black-box" platforms that are opinionated about the infra you can deploy, Coherence is powered by CNC, the open-source IaC framework, which offers limitless customization.

Learn more

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

👋 Kindness is contagious

Explore a sea of insights with this enlightening post, highly esteemed within the nurturing DEV Community. Coders of all stripes are invited to participate and contribute to our shared knowledge.

Expressing gratitude with a simple "thank you" can make a big impact. Leave your thanks in the comments!

On DEV, exchanging ideas smooths our way and strengthens our community bonds. Found this useful? A quick note of thanks to the author can mean a lot.

Okay