How to check if a python package is installed using poetry

Question:

I’m using Poetry to manage my Python project, and I would like to check if a package is installed. This means the package is actually fetched from the remote repository and is located in the .venv/ folder. I went through the official documentation but didn’t find any command that can do that.

Any ideas? Thanks.

Update: I ended up with a solution by running the following command and parsing its output.

Thanks all for the help here!

poetry install --dry-run --sync --no-ansi

Asked By: guojiubo

||

Answers:

import pkgutil

package_name = "package_name" # Replace with the name of the package you want to check

Check if the package is installed

if pkgutil.find_loader(package_name):
    print(f"{package_name} is installed.")
else:
    print(f"{package_name} is not installed.")
Answered By: Shah Wali

Assuming you have activated the virtual environment in the .venv folder (using, for example source .venv/bin/activate), you can use pip list to list all of the installed packages in that virtual environment. There is a poetry show command to list all available packages as well that you might want to look into: https://python-poetry.org/docs/cli/#show

Update:

You can parse the output of the poetry install --dry-run command to see what packages are installed, without actually installing any packages. Look for the lines with both "Installing" and "Skipped" and "reason: Already installed", to see what packages are already installed.

Answered By: sjking

I guess you want to check whether a particular package is installed in your poverty environment.
You can use poetry show <packagename> command which will show package information.

niraj@HOST-ANALYTICS:~/Work/Code/apitutorialsnew$ poetry show pandas
 name         : pandas                                                                  
 version      : 1.5.3                                                                   
 description  : Powerful data structures for data analysis, time series, and statistics 

dependencies
 - numpy >=1.20.3
 - numpy >=1.21.0
 - python-dateutil >=2.8.1
 - pytz >=2020.1

required by
 - seaborn >=0.25
 - statsmodels >=0.25
Answered By: groot
Categories: questions Tags: ,
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.