Как импортировать ядро ​​PyMEL?

Я импортирую maya.standalone, инициализируя его, а затем импортируя pymel.core as pmc в мой интерпретатор Python Майя, который работает в PowerShell. На данный момент я получаю много предупреждений. После того, как я позвоню: xform, shape = pmc.polysphere()Я получаю предупреждение: name 'xform' is not defined

Это выход из импорта Pymel

> Warning: file: C:/Program
> Files/Autodesk/Maya2016/scripts/startup/initialStartup.mel line 195:
> Y-axis is already the Up-axis Initialized VP2.0 renderer {   Version :
> 6.3.16.0. Feature Level 5.   Adapter : Intel(R) HD Graphics 4600   Vendor ID: 32902. Device ID : 1046   Driver :
> nvwgf2umx.dll:9.18.13.5306.   API : DirectX V.11.   Max texture size :
> 16384 * 16384.   Max tex coords : 32   Shader versions supported
> (Vertex: 5, Geometry: 5, Pixel 5).   Active stereo support available :
> 0   GPU Memory Limit : 2080 MB.   CPU Memory Limit: 15472.7 MB. }
> OpenCL evaluator is attempting to initialize OpenCL. Detected 2 OpenCL
> Platforms:  0: Intel(R) Corporation. Intel(R) OpenCL. OpenCL 1.2 . 
> Supported extensions: cl_intel_dx9_media_sharing
> cl_khr_byte_addressable_store cl_khr_d3d11_sharing
> cl_khr_dx9_media_sharing cl_khr_gl_sharing
> cl_khr_global_int32_base_atomics cl_khr_global
> _int32_extended_atomics cl_khr_icd cl_khr_local_int32_base_atomics cl_khr_local_int32_extended_atomics  1: NVIDIA Corporation. NVIDIA
> CUDA. OpenCL 1.2 CUDA 7.5.8.  Supported extensions:
> cl_khr_byte_addressable_store cl_khr_icd cl_khr_gl_sharing
> cl_nv_compiler_options cl_nv_device_attribute_query
> cl_nv_pragma_unroll cl_nv_d3d9_sharing cl_nv_d3d10_shari ng
> cl_khr_d3d10_sharing cl_nv_d3d11_sharing cl_nv_copy_opts OpenCL
> evaluator choosing OpenCL platform Intel(R) Corporation. Choosing
> OpenCL Device Intel(R) HD Graphics 4600.  Device Type: GPU  Device is
> available. OpenCL device does not support out of order execution
> 
> Error: file: C:/Program
> Files/Autodesk/Maya2016/plug-ins/xgen/scripts/igInitialize.mel line
> 63: ImportError: file <maya console> line 1: No module named xgenm
> Error: Unable to execute igInitialize.mel. Unable to execute
> igInitialize.mel.Error: line 0: ImportError: file <maya console> line
> 1: No module named xgenm Error: Unable to execute xgen.mel. Unable to
> execute xgen.mel.xgmNurbsPatch [u'containerBase', u'entity',
> u'dagNode', u'shape', u'geometryShape', u'deformableShape',
> u'controlPoint', u'surfaceShape', u'THsurfaceShape', u'xgmP atch',
> u'containerBase', u'entity', u'dagNode', u'shape', u'geometryShape',
> u'deformableShape', u'controlPoint', u'surfaceShape',
> u'THsurfaceShape', u'xgmNurbsPatch'] pymel.internal.apicache : WARNING
> : lineage for node xgmNurbsPatch is cyclical: [u'containerBase',
> u'entity', u'dagNode', u'shape', u'geometryShape', u'deformableShape',
> u'controlPoint', u's urfaceShape', u'THsurfaceShape', u'xgmPatch',
> u'containerBase', u'entity', u'dagNode', u'shape', u'geometryShape',
> u'deformableShape', u'controlPoint', u'surfaceShape',
> u'THsurfaceShape', u' xgmNurbsPatch'] xgmSubdPatch [u'containerBase',
> u'entity', u'dagNode', u'shape', u'geometryShape', u'deformableShape',
> u'controlPoint', u'surfaceShape', u'THsurfaceShape', u'xgmPatch',
> u'containerBase', u'e ntity', u'dagNode', u'shape', u'geometryShape',
> u'deformableShape', u'controlPoint', u'surfaceShape',
> u'THsurfaceShape', u'xgmSubdPatch'] pymel.internal.apicache : WARNING
> : lineage for node xgmSubdPatch is cyclical: [u'containerBase',
> u'entity', u'dagNode', u'shape', u'geometryShape', u'deformableShape',
> u'controlPoint', u'su rfaceShape', u'THsurfaceShape', u'xgmPatch',
> u'containerBase', u'entity', u'dagNode', u'shape', u'geometryShape',
> u'deformableShape', u'controlPoint', u'surfaceShape',
> u'THsurfaceShape', u'x gmSubdPatch'] xgmArchiveGuide
> [u'containerBase', u'entity', u'dagNode', u'shape', u'geometryShape',
> u'deformableShape', u'controlPoint', u'surfaceShape',
> u'THsurfaceShape', u'xgmGuide', u'containerBase', u'entity',
> u'dagNode', u'shape', u'geometryShape', u'deformableShape',
> u'controlPoint', u'surfaceShape', u'THsurfaceShape',
> u'xgmArchiveGuide'] pymel.internal.apicache : WARNING : lineage for
> node xgmArchiveGuide is cyclical: [u'containerBase', u'entity',
> u'dagNode', u'shape', u'geometryShape', u'deformableShape',
> u'controlPoint', u 'surfaceShape', u'THsurfaceShape', u'xgmGuide',
> u'containerBase', u'entity', u'dagNode', u'shape', u'geometryShape',
> u'deformableShape', u'controlPoint', u'surfaceShape',
> u'THsurfaceShape', u'xgmArchiveGuide'] xgmCardGuide [u'containerBase',
> u'entity', u'dagNode', u'shape', u'geometryShape', u'deformableShape',
> u'controlPoint', u'surfaceShape', u'THsurfaceShape', u'xgmGuide',
> u'containerBase', u'e ntity', u'dagNode', u'shape', u'geometryShape',
> u'deformableShape', u'controlPoint', u'surfaceShape',
> u'THsurfaceShape', u'xgmCardGuide'] pymel.internal.apicache : WARNING
> : lineage for node xgmCardGuide is cyclical: [u'containerBase',
> u'entity', u'dagNode', u'shape', u'geometryShape', u'deformableShape',
> u'controlPoint', u'su rfaceShape', u'THsurfaceShape', u'xgmGuide',
> u'containerBase', u'entity', u'dagNode', u'shape', u'geometryShape',
> u'deformableShape', u'controlPoint', u'surfaceShape',
> u'THsurfaceShape', u'x gmCardGuide'] xgmSphereGuide [u'containerBase',
> u'entity', u'dagNode', u'shape', u'geometryShape', u'deformableShape',
> u'controlPoint', u'surfaceShape', u'THsurfaceShape', u'xgmGuide',
> u'containerBase', u 'entity', u'dagNode', u'shape', u'geometryShape',
> u'deformableShape', u'controlPoint', u'surfaceShape',
> u'THsurfaceShape', u'xgmSphereGuide'] pymel.internal.apicache :
> WARNING : lineage for node xgmSphereGuide is cyclical:
> [u'containerBase', u'entity', u'dagNode', u'shape', u'geometryShape',
> u'deformableShape', u'controlPoint', u' surfaceShape',
> u'THsurfaceShape', u'xgmGuide', u'containerBase', u'entity',
> u'dagNode', u'shape', u'geometryShape', u'deformableShape',
> u'controlPoint', u'surfaceShape', u'THsurfaceShape', u
> 'xgmSphereGuide'] xgmSplineGuide [u'containerBase', u'entity',
> u'dagNode', u'shape', u'geometryShape', u'deformableShape',
> u'controlPoint', u'surfaceShape', u'THsurfaceShape', u'xgmGuide',
> u'containerBase', u 'entity', u'dagNode', u'shape', u'geometryShape',
> u'deformableShape', u'controlPoint', u'surfaceShape',
> u'THsurfaceShape', u'xgmSplineGuide'] pymel.internal.apicache :
> WARNING : lineage for node xgmSplineGuide is cyclical:
> [u'containerBase', u'entity', u'dagNode', u'shape', u'geometryShape',
> u'deformableShape', u'controlPoint', u' surfaceShape',
> u'THsurfaceShape', u'xgmGuide', u'containerBase', u'entity',
> u'dagNode', u'shape', u'geometryShape', u'deformableShape',
> u'controlPoint', u'surfaceShape', u'THsurfaceShape', u
> 'xgmSplineGuide'] AbcExport v1.0 using Alembic 1.5.4 (built May  8
> 2014 13:47:10) Error: file: C:/Program
> Files/Autodesk/Maya2016/scripts/startup/autoLoadPlugin.mel line 46:
> ImportError: file <maya console> line 1: No module named
> mtoa.lightFilters
> 
> API error detected in plugins\mtoa\extension\PxMayaNode.cpp at line
> 222 : (kFailure): Unexpected Internal Failure Error: file: C:/Program
> Files/Autodesk/Maya2016/scripts/startup/autoLoadPlugin.mel line 46:
> ImportError: file <maya console> line 1: No module named
> mtoa.lightFilters
> 
> API error detected in plugins\mtoa\extension\PxMayaNode.cpp at line
> 222 : (kFailure): Unexpected Internal Failure Error: file: C:/Program
> Files/Autodesk/Maya2016/scripts/startup/autoLoadPlugin.mel line 46:
> ImportError: file <maya console> line 1: No module named
> mtoa.lightFilters
> 
> API error detected in plugins\mtoa\extension\PxMayaNode.cpp at line
> 222 : (kFailure): Unexpected Internal Failure Error: file: C:/Program
> Files/Autodesk/Maya2016/scripts/startup/autoLoadPlugin.mel line 46:
> ImportError: file <maya console> line 1: No module named
> mtoa.lightFilters
> 
> API error detected in plugins\mtoa\extension\PxMayaNode.cpp at line
> 222 : (kFailure): Unexpected Internal Failure 00:00:00   359MB ERROR  
> | [mtoa] [xgenTranslator] Could not find xgen_procedural in search
> path $ARNOLD_PLUGIN_PATH Error: file: C:/Program
> Files/Autodesk/Maya2016/scripts/startup/autoLoadPlugin.mel line 46:
> ImportError: file <maya console> line 1: No module named
> mtoa.api.extensions
> 
> API error detected in plugins\mtoa\extension\ExtensionsManager.cpp at
> line 571 : (kFailure): Unexpected Internal Failure Error: file:
> C:/Program Files/Autodesk/Maya2016/scripts/startup/autoLoadPlugin.mel
> line 46: ImportError: file <maya console> line 1: No module named
> mtoa.api.extensions
> 
> API error detected in plugins\mtoa\extension\ExtensionsManager.cpp at
> line 571 : (kFailure): Unexpected Internal Failure Error: file:
> C:/Program Files/Autodesk/Maya2016/scripts/startup/autoLoadPlugin.mel
> line 46: ImportError: file <maya console> line 1: No module named
> mtoa.api.extensions
> 
> API error detected in plugins\mtoa\extension\ExtensionsManager.cpp at
> line 571 : (kFailure): Unexpected Internal Failure Error: file:
> C:/Program Files/Autodesk/Maya2016/scripts/startup/autoLoadPlugin.mel
> line 46: ImportError: file <maya console> line 1: No module named
> arnold
> 
> API error detected in plugins\mtoa\Main.cpp at line 770 : (kFailure):
> Unexpected Internal Failure 00:00:00   362MB ERROR   | Failed to
> import python module 'arnold' Error: Failed to import python module
> 'arnold' aiSkyDomeLight [u'containerBase', u'entity', u'dagNode',
> u'shape', u'geometryShape', u'locator', u'THlocatorShape',
> u'SphereLocator', u'containerBase', u'entity', u'dagNode', u'shape',
> u'geo metryShape', u'locator', u'THlocatorShape', u'aiSkyDomeLight']
> pymel.internal.apicache : WARNING : lineage for node aiSkyDomeLight is
> cyclical: [u'containerBase', u'entity', u'dagNode', u'shape',
> u'geometryShape', u'locator', u'THlocatorShape', u'Sphere Locator',
> u'containerBase', u'entity', u'dagNode', u'shape', u'geometryShape',
> u'locator', u'THlocatorShape', u'aiSkyDomeLight'] aiSky
> [u'containerBase', u'entity', u'dagNode', u'shape', u'geometryShape',
> u'locator', u'THlocatorShape', u'SphereLocator', u'containerBase',
> u'entity', u'dagNode', u'shape', u'geometryShap e', u'locator',
> u'THlocatorShape', u'aiSky'] pymel.internal.apicache : WARNING :
> lineage for node aiSky is cyclical: [u'containerBase', u'entity',
> u'dagNode', u'shape', u'geometryShape', u'locator', u'THlocatorShape',
> u'SphereLocator',  u'containerBase', u'entity', u'dagNode', u'shape',
> u'geometryShape', u'locator', u'THlocatorShape', u'aiSky'] Error:
> file: C:/Program
> Files/Autodesk/Maya2016/scripts/startup/autoLoadPlugin.mel line 46:
> initializePlugin function failed (mtoa) AbcImport v1.0 using Alembic
> 1.5.4 (built May  8 2014 13:47:10) BifrostMain plug-in loaded (built Feb 26 2015 18:01:51) Error: file: C:/Program
> Files/Autodesk/Maya2016/scripts/startup/autoLoadPlugin.mel line 46:
> ImportError: file C:/Program
> Files/Autodesk/Maya2016/plug-ins/xgen/plug-ins/xgenMR.py line 9: No m
> odule named xgenm Warning: file: C:/Program
> Files/Autodesk/Maya2016/scripts/startup/autoLoadPlugin.mel line 46:
> Failed to run file: C:/Program
> Files/Autodesk/Maya2016/plug-ins/xgen/plug-ins/xgenMR.py pymel : ERROR
> : Failed to get controlCommand list from xgenMR pymel : ERROR : Failed
> to get modelEditorCommand list from xgenMR pymel : ERROR : Failed to
> get command list from xgenMR pymel : ERROR : Failed to get
> constraintCommand list from xgenMR pymel.core : ERROR : Failed to get
> depend nodes list from xgenMR Error: file: C:/Program
> Files/Autodesk/Maya2016/scripts/startup/autoLoadPlugin.mel line 46: 
> (xgenMR)
> >>>

Я работаю над книгой Практическое программирование майя, вот текст из книги:

Теперь мы начнем копаться в Maya и PyMEL. Давайте начнем с инициализации Maya в интерпретаторе mayapy, чтобы мы могли использовать не только стандартную функциональность Python. Мы делаем это, вызывая maya.standalone.initialize, как показано в следующем коде:

>>> import maya.standalone
>>> maya.standalone.initialize()
>>> import pymel.core as pmc
>>> xform, shape = pmc.polySphere()

При импорте pymel.core неявно будет автоматически вызываться maya.standalone.initialize, но я делаю это прямо здесь, чтобы было ясно, что происходит. В будущем вы можете вообще пропустить вызов maya.standalone.initialize и просто импортировать pymel.core.

Мы можем многое узнать об этих объектах PyMEL, которые представляют узлы Maya, используя базовый Python. Например, чтобы увидеть тип любого из наших объектов, мы можем использовать встроенную функцию типа (мы углубимся в изучение типов далее в этой главе).

Может кто-нибудь объяснить ошибки, которые я получаю в моем переводчике, и предложить решение?

2 ответа

Решение

Поскольку вы находитесь в Windows, убедитесь, что вы не используете Powershell ISE. Просто используйте стандартную Powershell.

Как говорит @Boon, большинство этих ошибок происходят из плагинов и кусочков Maya, которые могли бы быть написаны лучше.

Поскольку вы сосредоточены на изучении программирования, вам не нужны эти плагины. Вы можете отключить их в интерактивном сеансе майя:

  1. Открой майя.
  2. Выберите Windows-> Настройки / Настройки-> Менеджер плагинов.
  3. Отключите "Loaded" и "Auto Load" для всех плагинов, которые не находятся в верхней части: то есть Xgen, Bifrost, Substance, mtoa и т. Д.
  4. Закрыть Майя.

Теперь попробуйте снова в вашей оболочке:

mayapy
import maya.standalone
maya.standalone.initialize()
import pymel.core as pm

На этом этапе я вижу предупреждение о Y-Up и некоторую информацию о версии Alembic, и ничего больше. Не о чем беспокоиться.

Приглашение >>> Что хорошо. Теперь вы должны иметь возможность вводить команды pymel: Введите (по одной за раз, чтобы увидеть результат):

pm.about(version=True)
pm.polySphere() 
pm.ls(type="mesh")

РЕДАКТИРОВАТЬ

Если вы используете powershell и настроили профиль, вы можете сэкономить время, добавив следующую строку в ваш профиль.ps1:

function ms { mayapy -i  -c "import maya.standalone;maya.standalone.initialize();import pymel.core as pm;print('maya standalone initialized and pymel.core imported as pm')" }

Теперь вы можете открыть PowerShell, наберите ms и начать кодирование.

(Это не полный ответ, но я нуб, поэтому мне запрещено комментировать.)

Куча предупреждений, которые выглядят как

xgmNurbsPatch [u'containerBase', u'entity', u'dagNode', u'shape', u'geometryShape', u'deformableShape', u'controlPoint', u'surfaceShape', u'THsurfaceShape', u'xgmPatch', u'containerBase', u'entity', u'dagNode', u'shape', u'geometryShape', u'deformableShape', u'controlPoint', u'surfaceShape', u'THsurfaceShape', u'xgmNurbsPatch']
# Warning: pymel.internal.apicache : lineage for node xgmNurbsPatch is cyclical: [u'containerBase', u'entity', u'dagNode', u'shape', u'geometryShape', u'deformableShape', u'controlPoint', u'surfaceShape', u'THsurfaceShape', u'xgmPatch', u'containerBase', u'entity', u'dagNode', u'shape', u'geometryShape', u'deformableShape', u'controlPoint', u'surfaceShape', u'THsurfaceShape', u'xgmNurbsPatch'] # 

являются (я думаю) проблемой с Maya 2016, вероятно, не о чем вам нужно беспокоиться.

Я работаю в редакторе сценариев, не используя maya.standalone. Когда я импортирую Pymel в Maya 2016, я получаю 6 таких предупреждений для разных классов 'xgm', таких же, как у вас. В предыдущих версиях Maya такого не было.

Что касается ошибок, mtoa/Arnold и xgen являются плагинами (и все ваши ошибки, похоже, связаны с загрузкой плагинов). Может быть, вы можете отключить их? Извините, я не работал с интерпретатором Python Maya за пределами основного приложения Maya.

Изменить: Я вижу, что кто-то еще (или, может быть, вы?) Имеют подобные ошибки с XGen, Arnold и Maya 2016 здесь: http://forums.cgsociety.org/archive/index.php?t-1287693.html

Другие вопросы по тегам