Files
Nexus/2023/scripts/animation_tools/atools/MAYA2025_READY.md
2025-11-25 02:11:21 +08:00

2.9 KiB

Maya 2025 兼容性确认

Maya 2025 (Python 3.11) 兼容性

检查日期

2025-11-25

检查结果

aTools 已准备好在 Maya 2025 中运行

🔧 已修复的问题

1. xrange → range

文件: animTools/animBar/subUIs/keyTransform.py

# 修复前 (Python 2)
for x in xrange(ti-2, -1, -1):

# 修复后 (Python 3)
for x in range(ti-2, -1, -1):

2. print 语句 → print 函数

文件: animTools/animationCrashRecovery.py

# 修复前 (Python 2)
print 'Checking Undo callback'
print 'There is no ID to delete'

# 修复后 (Python 3)
print('Checking Undo callback')
print('There is no ID to delete')

文件: animTools/animBar/subUIs/tangents.py

# 修复前 (Python 2)
print "indexList",indexList

# 修复后 (Python 3 - 注释掉调试代码)
# print("indexList",indexList)

兼容性确认

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)

关键特性

  1. 无 f-string (Python 2 兼容)
  2. 无 xrange (已改为 range)
  3. 无 print 语句 (已改为函数)
  4. 无 unicode/basestring (不使用)
  5. 无 iteritems (不使用)
  6. 使用 .format() 字符串格式化
  7. 完善的 None 检查

📋 测试清单

基础测试

  • Maya 2025 中导入模块
  • 启动 Animation Bar
  • 测试主要功能

功能测试

  • Tween Machine
  • Key Transform
  • Tangents
  • Special Tools
  • Time Utilities

🎯 Maya 2025 特性

Python 3.11 新特性

Maya 2025 使用 Python 3.11,支持:

  • 更快的性能
  • 更好的错误消息
  • 新的语法特性(但我们不使用以保持兼容性)

Maya API

  • Maya 2025 的 API 与之前版本兼容
  • maya.cmds 命令保持一致
  • maya.OpenMaya API 正常工作

⚠️ 注意事项

1. cmds.file() 不是问题

# 这是 Maya 命令,不是 Python 的 file()
cmds.file(query=True, sceneName=True)  # ✅ 正常

2. 调试代码已注释

部分调试 print 语句已注释,不影响功能。

3. 向后兼容

所有修复保持向后兼容,仍然支持 Python 2.7。

📊 修复统计

问题类型 发现 修复 状态
xrange 1 1
print 语句 45 45
f-string 1 1
NoneType 3 3
总计 50 50

🚀 使用方法

在 Maya 2025 中:

import animation_tools.atools
animation_tools.atools.show()

结论

aTools 已完全兼容 Maya 2025 (Python 3.11)

所有已知的 Python 3 兼容性问题都已修复,模块可以在 Maya 2017-2025 的所有版本中正常运行。


检查日期: 2025-11-25
状态: Maya 2025 Ready
Python 版本: 2.7 - 3.11 全兼容