AutoGPT/scripts/check_requirements.py

38 lines
988 B
Python

import re
import sys
import pkg_resources
def main():
requirements_file = sys.argv[1]
with open(requirements_file, "r") as f:
required_packages = [
line.strip().split("#")[0].strip() for line in f.readlines()
]
installed_packages = {pkg.key: pkg.version for pkg in pkg_resources.working_set}
missing_packages = []
for required_package in required_packages:
if not required_package: # Skip empty lines
continue
pkg = pkg_resources.Requirement.parse(required_package)
if (
pkg.key not in installed_packages
or pkg_resources.parse_version(installed_packages[pkg.key])
not in pkg.specifier
):
missing_packages.append(str(pkg))
if missing_packages:
print("Missing packages:")
print(", ".join(missing_packages))
sys.exit(1)
else:
print("All packages are installed.")
if __name__ == "__main__":
main()