1、当项目开发时,经常遇到别人在新项目中新增了某个库而导致我们本地项目很难run起来
- base
# -*- encoding: utf-8 -*-
"""
@File: auto_import.py
"""
import os
import errno
import subprocess
import pkg_resources
from typing import Dict
def check_install_pkgs(
pkgs: list,
mirror: str = "https://mirrors.aliyun.com/pypi/simple/",
check_local: bool = False,
filepath: str = None
):
"""
检查并安装依赖库
:params pkgs: list
:params mirror: 默认镜像源
:params check_local: (与filepath一起使用)是否检查本地, 如果是, 需要在本地创建一个requirements.txt并将需要的库写入
:params filepath: requirements.txt文件路径
"""
if check_local:
with open(filepath, mode="r", encoding="utf-8") as file:
lines: List[str] = file.readlines()
pkgLists: list = [line.strip() for line in lines if line and not line.startswith('#')]
else:
pkgLists: list = pkgs
for _, pkg in enumerate(pkgLists):
try:
pkg_resources.get_distribution(pkg)
except pkg_resources.DistributionNotFound:
subprocess.check_call(["pip", "install", pkg, "-i", mirror])