- 
                Notifications
    
You must be signed in to change notification settings  - Fork 8
 
Open
Description
Hi. Below is AI generated code to check if a certain python package is installed or not.
It checks for python-string-utils and jsonschema packages existance.
For python-string-utils it prints below EVERY TIME the script is ran:
python-string-utils is not installed or is not the desired version. Installing...
python-string-utils (1.0.0) has been successfully installed.
For jsonschema it prints below immediately:
jsonschema (4.17.3) is already installed.
What could be the issue that is causing python-string-utils to be checked always?
Any leads is appreciated.
Code:
import importlib
import subprocess
# Define a list of packages and their desired versions
packages_to_check = [
    {"name": "python-string-utils", "version": "1.0.0"},
    {"name": "jsonschema", "version": "4.17.3"},
]
for package_info in packages_to_check:
    package_name = package_info["name"]
    desired_version = package_info["version"]
    try:
        # Attempt to import the package
        importlib.import_module(package_name)
        print(f"{package_name} ({desired_version}) is already installed.")
    except ImportError:
        print(f"{package_name} is not installed or is not the desired version. Installing...")
        # Install the package with the desired version
        install_command = ["pip3", "install", f"{package_name}=={desired_version}"]
        # Run the installation command
        installation_result = subprocess.run(install_command, capture_output=True, text=True)
        if installation_result.returncode == 0:
            print(f"{package_name} ({desired_version}) has been successfully installed.")
        else:
            print(f"Failed to install {package_name} ({desired_version}).")
            print("Installation error output:")
            print(installation_result.stderr)
Metadata
Metadata
Assignees
Labels
No labels