Terminal kod hatası yakalama

Pip’in verdiği çıktıyı işlemek yerine modülü import etmeye çalışmanız daha pratik olabilir:

import subprocess

def install_library(lib):
    subprocess.call("pip install " + lib, shell = True)
    try:
        __import__(lib)
    except ModuleNotFoundError:
        return False
    else:
        return True


if install_library("numpy"):
    print("Başarıyla indirildi.")
else:
    print("İndirme işlemi tamamlanamadı.")

Modülün içe aktarılmasından kaçınmak isteniyorsa şöyle bir şey de kullanılabilir:

import subprocess
import importlib

def install_library(lib):
    if importlib.util.find_spec(lib) is not None:
        return True
    subprocess.call("pip install " + lib, shell = True)
    return importlib.util.find_spec(lib) is not None


if install_library("numpy"):
    print("Başarıyla indirildi.")
else:
    print("İndirme işlemi tamamlanamadı.")

2 Beğeni