Spaces:
Sleeping
Sleeping
#!/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❌ 打包失败,请检查文件完整性") |