def validate_requirements(component_names, dev_requirements_file="alt_requirements/requirements_dev.txt"):
# type: (List[Text], Text) -> None
"""Ensures that all required python packages are installed to instantiate and used the passed components."""
from rasa_nlu import registry
# Validate that all required packages are installed
failed_imports = set()
for component_name in component_names:
component_class = registry.get_component_class(component_name)
failed_imports.update(find_unavailable_packages(component_class.required_packages()))
if failed_imports: # pragma: no cover
# if available, use the development file to figure out the correct version numbers for each requirement
all_requirements = _read_dev_requirements(dev_requirements_file)
if all_requirements:
missing_requirements = [r for i in failed_imports for r in all_requirements[i]]
raise Exception("Not all required packages are installed. " +
"Failed to find the following imports {}. ".format(", ".join(failed_imports)) +
"To use this pipeline, you need to install the missing dependencies, e.g. by running:\n\t" +
"> pip install {}".format(" ".join(missing_requirements)))
else:
raise Exception("Not all required packages are installed. " +
"To use this pipeline, you need to install the missing dependencies. " +
"Please install {}".format(", ".join(failed_imports)))
评论列表
文章目录