File size: 1,193 Bytes
d8d14f1
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
import pkg_resources


def get_package_versions(requirements_path, output_path):
    try:
        with open(requirements_path) as file:
            requirements = file.readlines()
    except FileNotFoundError:
        print(f"Error: The file '{requirements_path}' was not found.")
        return

    package_versions = []

    for requirement in requirements:
        # Skip empty lines and comments
        if (
            requirement.strip() == ""
            or requirement.strip().startswith("#")
        ):
            continue

        # Extract package name
        package_name = requirement.split("==")[0].strip()
        try:
            version = pkg_resources.get_distribution(
                package_name
            ).version
            package_versions.append(f"{package_name}=={version}")
        except pkg_resources.DistributionNotFound:
            package_versions.append(f"{package_name}: not installed")

    with open(output_path, "w") as file:
        for package_version in package_versions:
            file.write(package_version + "\n")
    print(f"Versions written to {output_path}")


# Usage
get_package_versions("requirements.txt", "installed_versions.txt")