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.
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
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
"""
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