set MAYA_SCRIPT_PATH не может определить новый сценарий dir для Maya - PullRequest
0 голосов
/ 23 июня 2018

вот мой 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, почему это не работает

Ответы [ 3 ]

0 голосов
/ 23 июня 2018

вы сможете динамически добавлять пути к Python для вашего запущенного maya с помощью sys.path.insert или sys.path.append.Вам не нужно делать что-то более сложное, чем это;ваш скрипт должен быть импортируемым, если он находится по пути sys.

Для того, что вы пытаетесь сделать, очень распространенным и чистым решением является использование модулей Maya.Модули позволят вам добавлять к обычным поисковым каталогам, и они поддерживают сетевые ресурсы - так что вы бы добавили модуль (по пути к вашим модулям maya) и указали каталог его скриптов на вашем onedrive.Модули также могут иметь свои собственные userSetup.pys, что очень удобно для поддержания четкого разделения между вашим кодом и всем, что работает на конкретной машине.

Подробнее о модулях здесь и здесь .Документы здесь

0 голосов
/ 24 июня 2018

Вам не нужно динамически добавлять свой путь через userSetup.py.

. Убедитесь, что вы включили PYTHONPATH в свой Maya.env:

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

Проверяя мои домашние настройки Windows, я использую обратную косую черту в Maya.env, чтобы вы могли увидеть, помогает ли переключение.Вместо проверки MAYA_PATH_DIR, проверьте sys.path, чтобы увидеть, есть ли там ваш каталог.Все модули Python должны находиться в одном из следующих каталогов, чтобы импортировать его:

import sys

for p in sys.path:
    print p

Вы также можете скопировать и вставить свой путь к os.path.exists, чтобы подтвердить, что он действительно существует.Иногда это правильный путь, но косые черты делают его таким, что он не разрешается должным образом.

0 голосов
/ 23 июня 2018

Мое решение tmp - добавить мой script_dir в скрипт запуска maya

в 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)
...