close

how to run a script using pyproject.toml settings and poetry?

Hello Guys, How are you all? Hope You all Are Fine. Today We Are Going To learn about how to run a script using pyproject.toml settings and poetry in Python. So Here I am Explain to you all the possible Methods here.

Without wasting your time, Let’s start This Article.

Table of Contents

how to run a script using pyproject.toml settings and poetry?

  1. how to run a script using pyproject.toml settings and poetry?

    You cannot pass something to the start() method directly. Instead you can use command line arguments and parse them, e.g. with pythons argparse.

  2. run a script using pyproject.toml settings and poetry

    You cannot pass something to the start() method directly. Instead you can use command line arguments and parse them, e.g. with pythons argparse.

Method 1

At the moment the [tool.poetry.scripts] sections is equivalent to setuptools console_scripts.

So the argument must be a valid module and method name. Let’s imagine within your package my_package, you have log_revision.py, which has a method start(). Then you have to write:

[tool.poetry.scripts]
my-script = "my_package.log_revision:start"

Here’s a complete example:

You should have this folder structure:

my_package
├── my_package
│   ├── __init__.py
│   └── log_revision.py
└── pyproject.toml

The content of pyproject.toml is:

[tool.poetry]
name = "my_package"
version = "0.1.0"
description = ""
authors = ["Your Name <[email protected]>"]

[tool.poetry.dependencies]

python = “^3.8”

[tool.poetry.scripts]

my-script = “my_package.log_revision:start”

[build-system]

requires = [“poetry_core>=1.0.0”] build-backend = “poetry.core.masonry.api”

and of log_revision.py:

def start():
    print("Hello")

After you have run poetry install once you should be able to do this:

$ poetry run my-script  
Hello

You cannot pass something to the start() method directly. Instead you can use command line arguments and parse them, e.g. with pythons argparse.

Method 2

Although the previous answers are correct, they are a bit complicated. The simplest way to run a python script with poetry is as follows:

poetry run python myscript.py

If you are using a dev framework like streamlit you can use

poetry run streamlit run myapp.py

Basically anything you put after poetry run will execute from the poetry virtual environment.

Summery

It’s all About this issue. Hope all Methods helped you a lot. Comment below Your thoughts and your queries. Also, Comment below which Method worked for you? Thank You.

Also, Read