这是我的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_PATH_DIR中
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...但当我在脚本编辑器中使用import ro时,它会引发:
# Error: ImportError: file <maya console> line 1: No module named ro # 我希望我可以写我的maya脚本和自动同步到onedrive,我应该怎么做我不理解maya doc说我可以设置MAYA_SCRIPT_PATH为什么它不工作
发布于 2018-06-23 22:35:21
我的临时解决方案是在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)发布于 2018-06-24 01:28:06
您应该能够使用sys.path.insert或sys.path.append将python路径动态添加到正在运行的maya。您不需要做比这更复杂的事情;如果脚本位于sys路径上,那么它应该是可导入的。
你想要做的是使用maya模块,这是一个非常常见和干净的解决方案。模块将允许您附加到通常的搜索目录,并且它们支持网络共享-因此您需要添加一个模块(在maya模块路径中),并将其脚本目录指向onedrive。模块也可以有自己的userSetup.pys,这对于保持代码和运行在特定机器上的任何其他东西之间的清晰分离是非常好的。
有关模块here和here的更多信息。文档是here格式的
发布于 2018-06-24 11:11:43
您不应该必须通过userSetup.py动态添加路径。
确保在Maya.env中包含PYTHONPATH
PYTHONPATH=C:\Users\roroco\OneDrive\maya\script
检查我的Windows home设置,我在Maya.env中使用了反斜杠,所以你可以看看切换是否有帮助。检查您的sys.path以查看目录是否在那里,而不是检查MAYA_PATH_DIR。所有Python模块都需要位于以下目录之一中才能导入:
import sys
for p in sys.path:
print p您还可以将路径复制并粘贴到os.path.exists,以确认它确实存在。有时它是正确的路径,但斜杠使它无法正确解析。
https://stackoverflow.com/questions/51000807
复制相似问题