| 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"]) | |