Spaces:
Runtime error
Runtime error
import importlib | |
import subprocess | |
def install_detection(requir_path): | |
# 读 | |
file_path = requir_path | |
requirements = [] | |
with open(file_path, 'r') as file: | |
for line in file: | |
requirements.append(line.strip()) | |
# 查 | |
missing_libs = [] | |
for libs in requirements: | |
if libs.find("==") == -1: #only fix requirements which contain "==", because I don't know how to take "<=",">="... into account at the same time. | |
check_libs = libs | |
else: | |
check_libs = libs[:libs.index("==")] | |
if check_libs == "Pillow": #import PIL instead of import Pillow | |
check_libs = "PIL" | |
try: | |
importlib.import_module(check_libs) | |
except ImportError: | |
if check_libs == "PIL": #switch back | |
check_libs = "Pillow" | |
missing_libs.append(check_libs) | |
return missing_libs | |
def print_missing(missing_libs): | |
# 返 | |
if missing_libs == []: | |
return "" | |
else: | |
return f"Not installed libraries: {', '.join(missing_libs)}" | |
# 启动检查 | |
def check_open(): | |
require_path = "./install_script/requirements.txt" | |
missings = install_detection(require_path) | |
installed = print_missing(missings) | |
if installed == "": | |
return | |
else: | |
print(installed) | |
for lib in missings: | |
subprocess.check_call(["pip", "install", lib]) | |
if __name__ == "__main__": | |
check_open() | |