Obtenez une liste des packages installés dans l'environnement actuel avec python

Obtenez une liste des packages installés

Vous voudrez peut-être une liste des packages installés dans votre environnement avec python. Un résumé de ce qu'il faut faire dans un tel cas.

Ligne de commande

Si vous souhaitez simplement connaître les informations, vous pouvez effectuer les opérations suivantes sur la console.

pip freeze
# .. output messages of command (example)
Jinja2==2.7.2
MarkupSafe==0.23
Pygments==1.6
Sphinx==1.2.2
docutils==0.11

la programmation

Lorsque vous souhaitez sortir sous forme de liste, par exemple, sur un code. Vous pouvez le savoir en lisant le code pip. (Pour référence, pip / commandes / freeze.py)

from pip.util import get_installed_distributions

skips = ['setuptools', 'pip', 'distribute', 'python', 'wsgiref']
for dist in get_installed_distributions(local_only=True, skip=skips):
    print(dist.project_name, dist.version)

""" output of script
docutils 0.11
Jinja2 2.7.2
MarkupSafe 0.23
Pygments 1.6
Sphinx 1.2.2
"""

Si vous ne voulez pas dépendre de pip

Jetez un œil à l'intérieur de pip / util.py.

def get_installed_distributions(local_only=True,
                                skip=stdlib_pkgs,
                                include_editables=True,
                                editables_only=False):
    """
    Return a list of installed Distribution objects.

    If ``local_only`` is True (default), only return installations
    local to the current virtualenv, if in a virtualenv.

    ``skip`` argument is an iterable of lower-case project names to
    ignore; defaults to stdlib_pkgs

    If ``editables`` is False, don't report editables.

    If ``editables_only`` is True , only report editables.

    """
    if local_only:
        local_test = dist_is_local
    else:
        local_test = lambda d: True

    if include_editables:
        editable_test = lambda d: True
    else:
        editable_test = lambda d: not dist_is_editable(d)

    if editables_only:
        editables_only_test = lambda d: dist_is_editable(d)
    else:
        editables_only_test = lambda d: True

    return [d for d in pkg_resources.working_set
            if local_test(d)
            and d.key not in skip
            and editable_test(d)
            and editables_only_test(d)
            ]

Après tout, je restreint simplement les objets dans pkg_resources.working_set par conditions. Donc, si vous n'avez pas besoin de vous restreindre, vous pouvez consulter pkg_resources.working_set.

import pkg_resources
for dist in pkg_resources.working_set:
    print(dist.project_name, dist.version)

#  output of script
"""
docutils 0.11
Jinja2 2.7.2
MarkupSafe 0.23
pip 1.4.1
Pygments 1.6
setuptools 0.9.8
Sphinx 1.2.2
"""

Recommended Posts

Obtenez une liste des packages installés dans l'environnement actuel avec python
Obtenez une liste de fichiers dans un dossier avec python sans chemin
Comment obtenir une liste de fichiers dans le même répertoire avec python
Obtenez le nombre d'éléments spécifiques dans la liste python
Obtenez une liste des livres électroniques DMM achetés avec Python + Selenium
Comment obtenir une liste d'exceptions intégrées pour python
J'ai isolé mon environnement avec virtualenv, mais je reçois beaucoup de paquets avec pip list
Afficher une liste d'alphabets en Python 3
[python] Obtenir une liste de variables d'instance
[Python] Obtenir une liste de dossiers uniquement
Essayez d'obtenir la liste des fils du bulletin d'information (je n'aime pas) avec Python.
[Python] Récupérez les fichiers dans le dossier avec Python
Récupérer l'appelant d'une fonction en Python
Générez une liste contenant le nombre de jours du mois en cours.
Créer un environnement virtuel avec conda avec Python
Copiez la liste en Python
Obtenir une liste d'utilisateurs IAM avec Boto3
Recevez une liste des résultats du traitement parallèle en Python avec starmap
Travaillez dans un environnement virtuel avec Python virtualenv.
Touchons une partie de l'apprentissage automatique avec Python
Obtenez un environnement de développement Python rapide avec Poetry
J'ai installé Pygame avec Python 3.5.1 dans l'environnement de pyenv sur OS X
Obtenez une liste d'articles publiés par les utilisateurs avec Python 3 Qiita API v2
Obtenez votre position actuelle avec un récepteur GPS USB
Recommandation de construction d'un environnement Python portable avec conda
[python] Récupère la liste des classes définies dans le module
Obtenir les informations de localisation actuelles et l'agent utilisateur en Python
Python: obtenir une liste de méthodes pour un objet
Regrouper par éléments consécutifs d'une liste en Python
Comment identifier l'élément avec le plus petit nombre de caractères dans une liste Python?
Essayez d'exécuter python dans l'environnement Django créé avec pipenv
Mettre à jour les packages déjà installés avec pip dans l'environnement utilisateur (non-su)
Développer une bibliothèque pour obtenir la liste des collections Kindle en Python
Discord's Python 1.5 ou version ultérieure, je ne parviens pas à obtenir la liste des membres
Comment développer dans un environnement virtuel Python [Memo]
Comment obtenir la dernière (dernière) valeur d'une liste en Python
Obtenir l'index de la nième valeur la plus grande / la plus petite de la liste en Python
Obtenez un environnement de développement Python propre avec pyenv + pipx + Poetry
Obtenir l'index de la nième valeur la plus grande / la plus petite de la liste en Python
Commencez avec Python! ~ ① Construction de l'environnement ~
Obtenir la valeur d'une clé spécifique jusqu'à l'index spécifié de la liste de dictionnaires en Python
Créez un environnement virtuel avec Python!
Obtenez de manière récursive la liste Excel dans un dossier spécifique avec python et écrivez-la dans Excel.
Créer un environnement virtuel avec Python 3
Liste des packages installés par conda
Obtenez une liste des métriques CloudWatch et une table de correspondance des unités unitaires avec Python boto
Démarrez avec Python avec Blender
Créez un environnement Python sur votre Mac avec Anaconda et PyCharm
J'ai essayé de créer une liste de nombres premiers avec python
[python] Obtenez le rang des valeurs dans la liste par ordre croissant / décroissant
Obtenez le nombre de lecteurs d'articles sur Mendeley en Python
Obtenez des données supplémentaires vers LDAP avec python
Livre en spirale en Python! Python avec un livre en spirale! (Chapitre 14 ~)
Créez un environnement python sur votre Mac
[Python] Créez un environnement virtuel avec Anaconda
Création d'un environnement Python 3.6 avec Windows + PowerShell
Obtenez un environnement local pour DynamoDB avec Docker
Comment obtenir stacktrace en python
Obtenez un jeton pour conoha avec python