默认采用dist 的 whl 安装,没有的情况下才build

This commit is contained in:
杍超
2025-01-22 11:42:05 +08:00
parent c89297fa7b
commit e842a00303
4 changed files with 56 additions and 23 deletions

3
.gitignore vendored
View File

@@ -1,5 +1,6 @@
.eggs/ .eggs/
dist/ dist/*.gz
*.pyc *.pyc
__pycache__/ __pycache__/
*.py[cod] *.py[cod]

View File

@@ -61,7 +61,7 @@ class GeminiHandler(AsyncAudioVideoStreamHandler):
# await self.session.send(encode_image(frame)) # await self.session.send(encode_image(frame))
# if self.latest_args[2] is not None: # if self.latest_args[2] is not None:
# await self.session.send(encode_image(self.latest_args[2])) # await self.session.send(encode_image(self.latest_args[2]))
print(frame.shape) # print(frame.shape)
newFrame = np.array(frame) newFrame = np.array(frame)
newFrame[0:, :, 0] = 255 - newFrame[0:, :, 0] newFrame[0:, :, 0] = 255 - newFrame[0:, :, 0]
self.video_queue.put_nowait(newFrame) self.video_queue.put_nowait(newFrame)

Binary file not shown.

View File

@@ -2,13 +2,40 @@ import subprocess
import os import os
import glob import glob
import shutil 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=False):
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(force_reinstall):
# 获取当前脚本所在的目录 # 获取当前脚本所在的目录
script_dir = os.path.dirname(os.path.abspath(__file__)) script_dir = os.path.dirname(os.path.abspath(__file__))
# 切换到当前脚本所在的目录 # 切换到当前脚本所在的目录
os.chdir(script_dir) os.chdir(script_dir)
# 查找 dist 目录下的 .whl 文件
whl_files = glob.glob('dist/*.whl')
if not check_node_installed() or whl_files is None or len(whl_files) == 0:
# 移除 gradio_webrtc 包 # 移除 gradio_webrtc 包
subprocess.run(['pip', 'uninstall', '-y', 'gradio_webrtc']) subprocess.run(['pip', 'uninstall', '-y', 'gradio_webrtc'])
@@ -22,12 +49,17 @@ subprocess.run(['gradio', 'cc', 'install'])
# 执行 gradio cc build --no-generate-docs # 执行 gradio cc build --no-generate-docs
subprocess.run(['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: if whl_files:
whl_file = whl_files[0] whl_file = whl_files[0]
# 安装 .whl 文件 # 安装 .whl 文件
subprocess.run(['pip', 'install', whl_file]) install_wheel(whl_file, force_reinstall)
else: else:
print("没有找到 .whl 文件") print("没有找到 .whl 文件")
if __name__ == "__main__":
# 解析命令行参数
parser = argparse.ArgumentParser(description="Update and install gradio-webrtc package.")
parser.add_argument('--force-reinstall', action='store_true', help='Force reinstall the .whl file')
args = parser.parse_args()
main(args.force_reinstall)