DreamRenderer / package_for_deploy.py
Longxiang-ai's picture
新增部署打包工具,支持将DreamRenderer应用打包并生成Git部署命令
2935b6d
#!/usr/bin/env python3
"""
打包DreamRenderer应用用于部署到Hugging Face Spaces
"""
import os
import shutil
import zipfile
from datetime import datetime
def create_deployment_package():
"""创建部署包"""
# 需要打包的文件
files_to_package = [
'README.md',
'requirements.txt',
'app.py',
'dream_renderer.py',
'bbox_component.html'
]
# 创建部署目录
deploy_dir = 'dreamrenderer_deploy'
if os.path.exists(deploy_dir):
shutil.rmtree(deploy_dir)
os.makedirs(deploy_dir)
print("📦 正在打包DreamRenderer应用...")
# 复制文件
for file in files_to_package:
if os.path.exists(file):
shutil.copy2(file, deploy_dir)
print(f"✅ 已复制: {file}")
else:
print(f"❌ 文件不存在: {file}")
return False
# 创建ZIP包
timestamp = datetime.now().strftime("%Y%m%d_%H%M%S")
zip_filename = f'dreamrenderer_{timestamp}.zip'
with zipfile.ZipFile(zip_filename, 'w', zipfile.ZIP_DEFLATED) as zipf:
for file in files_to_package:
if os.path.exists(os.path.join(deploy_dir, file)):
zipf.write(os.path.join(deploy_dir, file), file)
print(f"\n🎉 部署包创建成功!")
print(f"📁 文件夹: {deploy_dir}/")
print(f"📦 ZIP包: {zip_filename}")
# 显示部署说明
print("\n" + "="*60)
print("📋 部署说明:")
print("="*60)
print("1. 访问: https://huggingface.co/spaces")
print("2. 点击 'Create new Space'")
print("3. 配置:")
print(" - Space name: dreamrenderer")
print(" - SDK: Gradio")
print(" - Hardware: ZeroGPU ⚠️")
print("4. 上传以下文件(按顺序):")
for i, file in enumerate(files_to_package, 1):
print(f" {i}. {file}")
print("5. 等待构建完成")
print("="*60)
return True
def create_git_commands():
"""生成git命令"""
print("\n🔧 Git部署命令:")
print("="*40)
print("# 如果你选择使用Git方式部署,运行以下命令:")
print("git clone https://huggingface.co/spaces/YOUR_USERNAME/dreamrenderer")
print("cd dreamrenderer")
print("")
print("# 复制文件")
current_path = os.getcwd()
files = ['README.md', 'requirements.txt', 'app.py', 'dream_renderer.py', 'bbox_component.html']
for file in files:
print(f"cp {current_path}/{file} .")
print("")
print("# 提交")
print("git add .")
print('git commit -m "Initial DreamRenderer implementation"')
print("git push")
print("="*40)
if __name__ == "__main__":
print("🚀 DreamRenderer 部署打包工具")
print("="*50)
if create_deployment_package():
create_git_commands()
print("\n✨ 准备完毕!现在你可以部署到Hugging Face Spaces了!")
else:
print("\n❌ 打包失败,请检查文件完整性")