File size: 2,286 Bytes
7e14917 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 |
#!/usr/bin/env python3
"""
创建或更新 Hugging Face 仓库
"""
import os
from pathlib import Path
from huggingface_hub import HfApi, login, create_repo
def create_and_upload():
# 检查 token
token = os.environ.get("HF_TOKEN")
if not token:
print("❌ 错误: 未设置 HF_TOKEN 环境变量!")
print("请运行: export HF_TOKEN='你的token'")
return False
try:
# 登录
login(token=token)
print("✅ 成功登录 Hugging Face")
# 获取当前用户信息
api = HfApi()
user_info = api.whoami()
username = user_info['name']
print(f"👤 当前用户: {username}")
except Exception as e:
print(f"❌ 登录失败: {e}")
return False
# 仓库配置
repo_name = "dbnet_res18_text_detection_v0.1"
repo_id = f"{username}/{repo_name}"
print(f"\n🔍 检查仓库: {repo_id}")
# 尝试创建仓库(如果不存在)
try:
create_repo(
repo_id=repo_id,
repo_type="model",
exist_ok=True,
private=False
)
print(f"✅ 仓库已就绪: {repo_id}")
except Exception as e:
print(f"⚠️ 仓库创建/检查: {e}")
# 上传文件
local_dir = Path(__file__).parent
print(f"\n🚀 开始上传文件到: {repo_id}")
try:
from huggingface_hub import upload_folder
# 上传整个文件夹
upload_folder(
folder_path=str(local_dir),
repo_id=repo_id,
repo_type="model",
ignore_patterns=[
"__pycache__/*",
"*.pyc",
".git/*",
"set_token.sh",
"update_*.py",
"update_*.sh"
],
commit_message="Update DBNet model files"
)
print(f"\n✅ 上传成功!")
print(f"🔗 查看仓库: https://huggingface.co/{repo_id}")
return True
except Exception as e:
print(f"❌ 上传失败: {e}")
import traceback
traceback.print_exc()
return False
if __name__ == "__main__":
success = create_and_upload()
exit(0 if success else 1)
|