在Visual Studio中编写Maya脚本时同文件夹模块导入报错求助
Maya脚本同文件夹模块导入问题解决
你的代码存在两个明确错误:
- Python导入模块时不能给模块名/函数名加引号,引号会将其转为字符串,Python无法识别为模块标识符。
- 带
.的相对导入有严格使用场景,不能随意套用。
以下是两种可行的解决办法:
方法一:手动添加脚本路径到Python搜索路径
如果你的脚本是直接在Maya中运行(比如拖入Maya、通过脚本编辑器执行),Maya默认不会自动将你的脚本文件夹加入Python搜索路径,需要手动添加:
import sys import os # 获取当前脚本所在文件夹的绝对路径 current_script_dir = os.path.dirname(os.path.abspath(__file__)) # 避免重复添加路径 if current_script_dir not in sys.path: sys.path.append(current_script_dir) # 正常导入同文件夹内的模块 import module_name # 替换为目标模块的文件名(不带.py后缀) from module_name import target_function # 替换为实际要导入的函数名
方法二:将文件夹作为Python包使用
先在脚本文件夹内创建一个空的__init__.py文件(让Python识别这是一个合法包),再根据场景操作:
- 若在包内模块间互相调用,可使用相对导入:
from . import module_name from .module_name import target_function - 注意:这种相对导入不能用于直接运行的主脚本,如果直接运行该脚本会报错,此时仍需使用方法一的路径添加方式。
额外注意事项
- 模块文件名必须符合Python命名规范:小写字母、下划线组合,不能包含空格或特殊字符。
- 确保模块文件名拼写正确,比如要导入
utils.py,就写import utils,不要带.py后缀或拼写错误。
内容的提问来源于stack exchange,提问作者Edytna
相关产品推荐
相关产品推荐

