Python __Maya中的文件未定义(#名称错误)
这似乎是一个被问了很多的问题,但到目前为止,我还没有找到一个有效的答案 我正在Maya 2020中工作,并尝试制作一个需要使用一些相对和绝对路径的脚本 这是我的剧本:Python __Maya中的文件未定义(#名称错误),python,maya,Python,Maya,这似乎是一个被问了很多的问题,但到目前为止,我还没有找到一个有效的答案 我正在Maya 2020中工作,并尝试制作一个需要使用一些相对和绝对路径的脚本 这是我的剧本: import os print os.path.dirname(os.path.realpath(__file__)) + os.sep 这是我的脚本的路径: Y:\New folder\my\u script.py 当我跑步时: execfile("Y:\New folder\my_script.py") 我总是会出错:
import os
print os.path.dirname(os.path.realpath(__file__)) + os.sep
这是我的脚本的路径:
Y:\New folder\my\u script.py
当我跑步时:
execfile("Y:\New folder\my_script.py")
我总是会出错:
# NameError: name '__file__' is not defined #
为什么会发生这种情况?首先,
execfile
在Python 3中是一个不推荐使用的函数,最好避免使用它。他们建议改用exec(open(fn).read())
(事实上,这就是它在引擎盖下的工作原理)。如果您查看建议的替换,您将了解为什么没有定义\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
(它不是一个文件,而是一个被解释为Python代码的文本)
在Maya中导入文件的常用方法是将文件放置在添加到PYTHONPATH
的目录中。用户文档中有默认的Maya脚本目录。根据您的平台和Maya版本,这可能是:C:\Users\\Documents\Maya\2020\scripts
另一个选项是将目录添加到路径
。通常看起来是这样的:
导入系统
MY_SCRIPT_PATH=“/Some/PATH/with/MY/scripts”
如果我的脚本路径不在sys.PATH中:
sys.path.append(我的脚本路径
然后,如果脚本文件名为my_script.py
,则可以导入它:
导入我的脚本
现在,您的\uuuu文件\uuuu
变量将按预期工作
注意:如果您更改了文件并希望重新加载:
重新加载(我的脚本)
首先,execfile
在Python3中是一个不推荐使用的函数,最好不要使用它。他们建议使用exec(open(fn).read())
(事实上,这就是它在引擎盖下的工作方式)。如果你看一下建议的替换,你就会明白为什么没有定义\uuuuuuuuuu文件(它不是一个文件,而是一个被解释为Python代码的文本)
在Maya中导入文件的常用方法是将它们放置在添加到PYTHONPATH
的目录中。用户文档中有默认的Maya脚本目录。根据您的平台和Maya版本,这可能是:C:\Users\\Documents\Maya\2020\scripts
另一个选项是将目录添加到路径
。通常如下所示:
导入系统
MY_SCRIPT_PATH=“/Some/PATH/with/MY/scripts”
如果我的脚本路径不在sys.PATH中:
sys.path.append(我的脚本路径
然后,如果脚本文件名为my_script.py
,则可以导入它:
导入我的脚本
现在,您的\uuuu文件\uuuu
变量将按预期工作
注意:如果您更改了文件并希望重新加载:
重新加载(我的脚本)
我不相信execfile
会像正常导入那样创建一个模块,因为它缺少\uuuuuuuuuuuuuuuuuuuu
之类的项目。你需要使用execfile
有什么特别的原因吗?我或多或少可以保证有更好的方法来完成你需要做的事情。我不相信execfile
crea像正常导入一样对模块进行测试,因此缺少\uuuuu file\uuuuuu
等项。您需要使用execfile
有什么特别的原因吗?我或多或少可以保证有更好的方法来完成您需要做的事情。