加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
install.py 1.87 KB
一键复制 编辑 原始数据 按行查看 历史
Bingsu 提交于 2023-07-01 09:43 . feat: add rich package
from __future__ import annotations
import importlib.util
import subprocess
import sys
from importlib.metadata import version # python >= 3.8
from packaging.version import parse
def is_installed(
package: str, min_version: str | None = None, max_version: str | None = None
):
try:
spec = importlib.util.find_spec(package)
except ModuleNotFoundError:
return False
if spec is None:
return False
if not min_version and not max_version:
return True
if not min_version:
min_version = "0.0.0"
if not max_version:
max_version = "99999999.99999999.99999999"
if package == "google.protobuf":
package = "protobuf"
try:
pkg_version = version(package)
return parse(min_version) <= parse(pkg_version) <= parse(max_version)
except Exception:
return False
def run_pip(*args):
subprocess.run([sys.executable, "-m", "pip", "install", *args])
def install():
deps = [
# requirements
("ultralytics", "8.0.97", None),
("mediapipe", "0.10.0", None),
("huggingface_hub", None, None),
("pydantic", "1.10.8", None),
("rich", "13.4.2", None),
# mediapipe
("protobuf", "3.20.0", "3.20.9999"),
]
for pkg, low, high in deps:
# https://github.com/protocolbuffers/protobuf/tree/main/python
name = "google.protobuf" if pkg == "protobuf" else pkg
if not is_installed(name, low, high):
if low and high:
cmd = f"{pkg}>={low},<={high}"
elif low:
cmd = f"{pkg}>={low}"
elif high:
cmd = f"{pkg}<={high}"
else:
cmd = pkg
run_pip("-U", cmd)
try:
import launch
skip_install = launch.args.skip_install
except Exception:
skip_install = False
if not skip_install:
install()
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化