Files
gradio-webrtc/update_version.py
2025-01-22 14:48:42 +08:00

70 lines
2.2 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import subprocess
import os
import glob
import shutil
import argparse
def check_node_installed():
try:
# 尝试运行 `node -v` 命令
subprocess.check_output(['node', '-v'])
print("Node.js is installed.")
return True
except subprocess.CalledProcessError:
print("Node.js is not installed or not found in PATH.")
return False
except FileNotFoundError:
print("Node.js is not installed or not found in PATH.")
return False
def install_wheel(whl_file, force_reinstall=True):
if force_reinstall:
subprocess.run(['pip', 'install', '--force-reinstall', whl_file])
print(f"Force reinstallation of {whl_file} successful.")
else:
subprocess.run(['pip', 'install', whl_file])
print(f"Installation of {whl_file} successful.")
def main():
# 获取当前脚本所在的目录
script_dir = os.path.dirname(os.path.abspath(__file__))
# 切换到当前脚本所在的目录
os.chdir(script_dir)
# 查找 dist 目录下的 .whl 文件
whl_files = glob.glob('dist/*.whl')
# 有node 且没有whl文件时执行gradio cc install和gradio cc build
if (whl_files is None or len(whl_files)) == 0:
if not check_node_installed():
print ("need to build .whl, but nodejs not installed")
return
# 移除 gradio_webrtc 包
subprocess.run(['pip', 'uninstall', '-y', 'gradio_webrtc'])
# 删除已有的 dist 目录
if os.path.exists('dist'):
shutil.rmtree('dist')
# 执行 gradio cc install
subprocess.run(['gradio', 'cc', 'install'])
# 执行 gradio cc build --no-generate-docs
subprocess.run(['gradio', 'cc', 'build', '--no-generate-docs'])
# 查找 dist 目录下的 .whl 文件
whl_files = glob.glob('dist/*.whl')
if whl_files:
whl_file = whl_files[0]
# 安装 .whl 文件
install_wheel(whl_file, True)
else:
print("没有找到 .whl 文件")
if __name__ == "__main__":
# 解析命令行参数
parser = argparse.ArgumentParser(description="Update and install gradio-webrtc package.")
args = parser.parse_args()
main()