python_requirements_facts – Show python path and assert dependency versions

New in version 2.7.

Synopsis

  • Get info about available Python requirements on the target host, including listing required libraries and gathering versions.

Parameters

Parameter Choices/Defaults Comments
dependencies
-
A list of version-likes or module names to check for installation. Supported operators: <, >, <=, >=, or ==. The bare module name like ansible, the module with a specific version like boto3==1.6.1, or a partial version like requests>2 are all valid specifications.

Examples

- name: show python lib/site paths
  python_requirements_facts:
- name: check for modern boto3 and botocore versions
  python_requirements_facts:
    dependencies:
    - boto3>1.6
    - botocore<2

Return Values

Common return values are documented here, the following are the fields unique to this module:

Key Returned Description
mismatched
dictionary
always
A dictionary of dependencies that did not satisfy the desired version

Sample:
{'botocore': {'desired': 'botocore>2', 'installed': '1.10.60'}}
not_found
dictionary
always
A list of packages that could not be imported at all, and are not installed

Sample:
['boto4', 'riquests']
python
string
always
path to python version used

Sample:
/usr/local/opt/python@2/bin/python2.7
python_system_path
list
always
List of paths python is looking for modules in

Sample:
['/usr/local/opt/python@2/site-packages/', '/usr/lib/python/site-packages/', '/usr/lib/python/site-packages/']
python_version
string
always
version of python

Sample:
2.7.15 (default, May 1 2018, 16:44:08) [GCC 4.2.1 Compatible Apple LLVM 9.1.0 (clang-902.0.39.1)]
valid
dictionary
always
A dictionary of dependencies that matched their desired versions. If no version was specified, then desired will be null

Sample:
{'boto3': {'desired': None, 'installed': '1.7.60'}, 'botocore': {'desired': 'botocore<2', 'installed': '1.10.60'}}


Status

Authors

  • Will Thames (@willthames)
  • Ryan Scott Brown (@ryan_sb)

Hint

If you notice any issues in this documentation you can edit this document to improve it.