You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Maya 2026导入自定义Python库调用函数报错NameError求助

问题原因分析

1. 函数未处于模块顶层命名空间

检查test_lib.py的代码结构:如果my_func被嵌套在其他函数、类或代码块内部(比如下面的错误写法),它就不属于模块的顶层命名空间,无法通过test_lib.my_func访问:

def wrapper_func():
    def my_func():
        print("hello world!")

正确写法应该是将my_func放在模块顶层:

def my_func():
    print("hello world!")

2. 导入了同名的其他模块

Maya的Python搜索路径中可能存在另一个test_lib模块,被优先导入。执行以下代码验证导入的模块路径:

import test_lib
print(test_lib.__file__)

如果输出路径不是你指定的C:\Users\user1\Documents\maya\scripts\test_lib.py,说明加载了其他位置的同名模块。

3. 模块缓存未更新

Maya的Python解释器会缓存已导入的模块,即使你修改了test_lib.py,旧版本的缓存仍会被使用。尝试强制重新加载模块:

import importlib
import test_lib
importlib.reload(test_lib)
test_lib.my_func()

4. 模块存在语法/编码错误

如果test_lib.py有语法错误(比如缩进错误、中文引号、编码不兼容),Maya导入时会静默加载失败,导致顶层函数无法被识别。直接在脚本编辑器中运行test_lib.py的全部代码,检查是否有语法报错。

5. 调用方式错误

你是否直接执行了my_func()而非test_lib.my_func()?如果没有用模块名限定函数,Python会在当前全局命名空间查找,自然触发NameError。正确调用方式为:

import test_lib
test_lib.my_func()

或者使用from test_lib import my_func后直接调用。


内容的提问来源于stack exchange,提问作者Ralf_Reddings

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 03:48:10