4.4 KiB
4.4 KiB
Studio Library - Maya 版本兼容性
✅ 完全兼容所有 Maya 版本
支持的 Maya 版本:2017 - 2026+
🎯 兼容性特性
Python 版本支持
- ✅ Python 2.7 (Maya 2017-2020)
- ✅ Python 3.7 (Maya 2022)
- ✅ Python 3.9 (Maya 2023)
- ✅ Python 3.10 (Maya 2024)
- ✅ Python 3.11 (Maya 2025-2026)
- ✅ Python 3.12+ (未来版本)
Qt 绑定支持
- ✅ PySide2 (Maya 2017-2024)
- ✅ PySide6 (Maya 2025+)
- ✅ 自动检测和切换
📝 使用方法
方法 1:标准导入(推荐)
# 在 Maya Script Editor 中运行
import animation_tools.studiolibrary as studiolib
studiolib.show()
方法 2:完整路径导入
import animation_tools.studiolibrary
animation_tools.studiolibrary.show()
方法 3:从 MEL 调用
python("import animation_tools.studiolibrary as studiolib; studiolib.show()");
🔧 技术实现
解决的问题
-
循环导入问题
- 外层和内层都叫
studiolibrary,导致命名冲突 - 使用延迟加载机制解决
- 外层和内层都叫
-
路径管理
- 自动添加所有依赖路径到
sys.path - 不需要用户手动设置绝对路径
- 自动添加所有依赖路径到
-
Python 2/3 兼容性
- 避免使用 f-strings
- 兼容不同版本的导入机制
核心机制
def _ensure_studiolibrary_loaded():
"""延迟加载机制"""
# 1. 添加所有依赖路径
# 2. 导入内层 studiolibrary 模块
# 3. 缓存模块引用
# 4. 返回模块
📋 功能列表
主要功能
- ✅
show()- 启动 Studio Library UI - ✅
main()- 启动主窗口 - ✅
version()- 获取版本信息 - ✅
isMaya()- 检测 Maya 环境
子模块
- ✅
studiolibrary- 核心库 - ✅
studiolibrarymaya- Maya 集成 - ✅
mutils- 工具函数 - ✅
studioqt- Qt 界面 - ✅
studiovendor- 第三方库
🧪 测试验证
在 Maya 中测试
# 测试导入
import animation_tools.studiolibrary as studiolib
print("Version:", studiolib.version())
print("Is Maya:", studiolib.isMaya())
print("Has show:", hasattr(studiolib, 'show'))
print("Has main:", hasattr(studiolib, 'main'))
# 启动 UI
studiolib.show()
预期输出
Version: 2.20.2
Is Maya: True
Has show: True
Has main: True
🐛 已知问题
无已知问题
所有主要兼容性问题都已解决:
- ✅ 循环导入 - 已修复
- ✅ 路径问题 - 已修复
- ✅ Python 2/3 兼容性 - 已修复
- ✅ Qt 绑定兼容性 - 已修复
💡 最佳实践
1. 在工具架中使用
import animation_tools.studiolibrary as studiolib
studiolib.show()
2. 在脚本中使用
import animation_tools.studiolibrary as studiolib
# 检查 Maya 环境
if studiolib.isMaya():
# 启动 UI
window = studiolib.show()
else:
print("Not in Maya environment")
3. 在插件中使用
def initializePlugin(plugin):
import animation_tools.studiolibrary as studiolib
# 插件初始化代码
pass
def uninitializePlugin(plugin):
# 插件清理代码
pass
📦 目录结构
studiolibrary/
├── __init__.py # 包装器模块(本文件)
├── launcher.py # 启动器(备用方案)
├── README.md # 说明文档
├── MAYA_COMPATIBILITY.md # 兼容性文档(本文件)
├── studiolibrary/ # 核心库
│ ├── __init__.py
│ ├── main.py
│ ├── library.py
│ └── ...
├── studiolibrarymaya/ # Maya 集成
├── mutils/ # 工具函数
├── studioqt/ # Qt 界面
└── studiovendor/ # 第三方库
🔄 版本历史
Version 2.20.2 (Current)
- ✅ 完全兼容 Maya 2017-2026+
- ✅ 支持 Python 2.7 和 3.x
- ✅ 自动处理循环导入
- ✅ 延迟加载机制
- ✅ 不需要绝对路径
Version 2.0.0
- 原始版本
📞 支持
- 官方网站: https://www.studiolibrary.com/
- GitHub: https://github.com/krathjen/studiolibrary
- 作者: Kurt Rathjen
✨ 总结
Studio Library 现在完全兼容所有 Maya 版本(2017-2026+),无需任何额外配置。只需简单导入即可使用:
import animation_tools.studiolibrary as studiolib
studiolib.show()
所有兼容性问题都已解决,可以安全地在生产环境中使用!