Python 设置MAYA_脚本_路径无法为MAYA指定新脚本目录

Python 设置MAYA_脚本_路径无法为MAYA指定新脚本目录,python,maya,Python,Maya,这是我的Maya.env λ cat C:\Users\roroco\Documents\maya\2018\Maya.env MAYA_SCRIPT_PATH=C:/Users/roroco/OneDrive/maya/script MAYA_PLUGIN_IN_PATH=C:/Users/roroco/OneDrive/maya/plugin 我确信我的脚本存在: λ cat C:\Users\roroco\OneDrive\maya\script\ro.py def init():

这是我的Maya.env

λ cat C:\Users\roroco\Documents\maya\2018\Maya.env
MAYA_SCRIPT_PATH=C:/Users/roroco/OneDrive/maya/script
MAYA_PLUGIN_IN_PATH=C:/Users/roroco/OneDrive/maya/plugin
我确信我的脚本存在:

λ cat C:\Users\roroco\OneDrive\maya\script\ro.py
def init():
    print("prpr")
在maya脚本编辑器中,我的脚本目录存在于maya_路径_目录中

getenv MAYA_SCRIPT_PATH;
// Result: C:/Users/roroco/Documents/maya/projects/default/scripts;C:/Users/roroco/OneDrive/maya/script;C:/Users/roroco/Documents/maya/2018/scripts;C:/Users/roroco/Documents/maya/scripts;C:/Users/roroco/Documents/maya/2018/presets;C:/Users/roroco/Documents/maya/2018/prefs/shelves;C:/Users/roroco/Documents/maya/2018/prefs/markingMenus...
但当我在脚本编辑器中导入ro时,它会引发:

# Error: ImportError: file <maya console> line 1: No module named ro # 
#错误:导入错误:文件第1行:没有名为ro的模块#
我希望我可以编写我的maya脚本并自动同步到onedrive,我该怎么做
我不明白为什么我可以设置MAYA_SCRIPT_PATH它不起作用

我的tmp解决方案是在MAYA启动脚本中添加我的SCRIPT_dir

在C:\Users\roroco\Documents\maya\scripts\userSetup.py中,添加以下代码:

import imp
import os
imp.load_source("", "c:/users/" + os.environ["USERNAME"] + "/OneDrive/maya/script/userSetup.py")
在my_script_dir/userSetup.py中,将my_script_dir添加到sys.path

import sys
import os

ro_script = os.path.dirname(__file__)
if ro_script not in sys.path:
    sys.path.insert(0, ro_script)

您应该能够使用
sys.path.insert
sys.path.append
将python路径动态添加到正在运行的maya中。你不需要做比这更详细的事情;如果脚本位于sys路径上,则它应该是可导入的

对于您尝试执行的操作,一个非常常见且干净的解决方案是使用maya模块。模块将允许您附加到常用的搜索目录,并且它们支持网络共享——因此您可以添加一个模块(在maya模块路径中)并将其脚本目录指向onedrive。模块也可以有自己的
userSetup.pys
,这对于保持代码与特定机器上运行的任何其他内容之间的清晰分离非常有用


更多关于模块和。这些文档是

您不必通过
userSetup.py
动态添加路径

确保在
Maya.env
中包含
PYTHONPATH

PYTHONPATH=C:\Users\rorooco\OneDrive\maya\script

在检查Windows home设置时,我在
Maya.env
中使用了反斜杠,因此您可以查看切换是否有帮助。不要检查
MAYA\u PATH\u DIR
,而是检查您的
sys.PATH
以查看您的目录是否在那里。所有Python模块都需要位于以下目录之一才能导入:

import sys

for p in sys.path:
    print p
您还可以将路径复制并粘贴到
os.path.exists
以确认它确实存在。有时它是正确的路径,但斜线使它无法正确解析