| import subprocess |
| import sys |
|
|
| def install_without_version(package_name): |
| package_name = str(package_name) |
| try: |
| __import__(package_name) |
| print(f"{package_name} is already installed.") |
| except ImportError: |
| print(f"{package_name} is not installed. Installing now...") |
| subprocess.check_call([sys.executable, "-m", "pip", "install", '-U', package_name]) |
|
|
|
|
| def install_with_version(package_name, package_version): |
| package_name = str(package_name) |
| package_version = str(package_version) |
| try: |
| pkg = __import__(package_name) |
| installed_version = pkg.__version__ |
| if installed_version == package_version: |
| print(f"{package_name} {package_version} is already installed.") |
| else: |
| print(f"{package_name} {installed_version} is installed, but {package_version} is required. Updating now...") |
| subprocess.check_call([sys.executable, "-m", "pip", "install", f"{package_name}=={package_version}"]) |
| except ImportError: |
| print(f"Installing version {package_version} now...") |
| subprocess.check_call([sys.executable, "-m", "pip", "install", f"{package_name}=={package_version}"]) |
|
|
| if __name__=='__main__': |
| packages = [['torch', ''], ['datasets', ''], ['spacy', ''], ['networkx', ''], ['numpy', '1.26.4']] |
| for package in packages: |
| if package[1] == '': |
| install_without_version(package[0]) |
| else: |
| install_with_version(package[0], package[1]) |
|
|
| subprocess.check_call([sys.executable, "python", "-m", "spacy", "download", "en_core_web_sm"]) |
| |
|
|