just making sure:  D:\pipeline_tools\python\site-packages\pymel_1.0.0rc2 has 
the pymel *and* maya directories below it?

-chad

On Apr 13, 2010, at 7:21 AM, David Shaw wrote:

> Hey everyone,
> 
> Thank you for your insights on the sitecustomize setup.
> 
> Bare with a new comer to python here and if anyone has the time to help 
> explain the problem I get.
> 
> My intention was to just have it detect Maya's version and whether 32 or 
> 64bit to load or not load appropriate packages.
> In the case of Maya 2011 NOT install our server pymel package (although with 
> Its 1.0 release today that may be moot)
> [I assume inserting it before the internal version overrides it?]
> 
> But to my problem :).....
> 
> It seems if I try and access anything Maya related at this early stage bad 
> things happen :)
> Printing the lines Paul gave me to try when in the sitecustomize.py file 
> gives the appropriate values I need 
> 
>  apiVerNum = MGlobal.apiVersion() and verString = MGlobal.mayaVersion()
> 
> (201100 and 2011 respectively)
> 
> If I use the MGlobal to query the maya version and do a check if its Maya 
> 2011 so we do NOT install the pymel package for that version of Maya 
> I get the following error:
> 
> from pymel.all import *
> # Error: AssertionError: assert hasattr(maya.utils, 'shellLogHandler'), "If 
> you manually installed pymel, ensure " \: If you manually installed pymel, 
> ensure that pymel comes before Maya's site-packages directory on PYTHONPATH / 
> sys.path.  See pymel docs for more info. # 
> 
> If you look at the path outputs below pymel does show before the Maya packages
> 
> But if I comment out the anything that calls Maya and replace it with 
> mayaVersion = '2011' pymel imports just fine.
> The path output is identical.
> 
> The Path after running the new sitecustomize.py script looks like: (Maya 2010 
> version) [The maya 2011 version just doenst have the bolded pymel_1.0.0rc2
> 
> Post Path: D:\pipeline_tools\python\site-packages\pyodbc-2.1.7
> Post Path: D:\pipeline_tools\python\site-packages\pymel_1.0.0rc2
> Post Path: I:\Program Files (x86)\Autodesk\Maya2010\bin
> Post Path: I:\Program Files (x86)\Autodesk\Maya2010\bin\python26.zip
> Post Path: I:\Program Files (x86)\Autodesk\Maya2010\Python\DLLs
> Post Path: I:\Program Files (x86)\Autodesk\Maya2010\Python\lib
> Post Path: I:\Program Files (x86)\Autodesk\Maya2010\Python\lib\plat-win
> Post Path: I:\Program Files (x86)\Autodesk\Maya2010\Python\lib\lib-tk
> Post Path: I:\Program Files (x86)\Autodesk\Maya2010\Python
> Post Path: I:\Program Files (x86)\Autodesk\Maya2010\Python\lib\site-packages
> 
> This is the sitecustomeize.py that doesn't work [excuse any noob things if I 
> am doing things the long way]
> import sys
> import os
> import re
> from maya.OpenMaya import MGlobal
> 
> for p in sys.path: print ('Pre Path: ' + p)
> 
> apiVerNum = MGlobal.apiVersion()
> verString = MGlobal.mayaVersion()
> mayaVersion = str(verString)
> 
> path = os.environ.get ("PYTHON_SITEPACKAGES")
> if(os.path.exists(path)):
>     sitePackages = os.listdir(path)
>     packagesToInsert = sitePackages[:] #duplicate the list so we can remove 
> any packages we don't want to insert
>     
>     for package in sitePackages:
>         if mayaVersion == '2011':
>             pymelMatch = re.match('pymel', package)
>             if pymelMatch:
>                 packagesToInsert.remove(package)
>     
>     for insertPackage in packagesToInsert:
>         sitePath = os.path.join(path, insertPackage)
>         realPath = os.path.realpath(sitePath)
>         print '*** Inserting package: %s from path: %s' % (insertPackage, 
> realPath)
>         sys.path.insert(0,realPath)
> else:
>     print "DEV: Site packages path does not exist in Maya.env - skipping"
> 
> for p in sys.path: print ('Post Path: ' + p)
> 
> This is the sitecustomeize.py that does work [excuse any noob things if I am 
> doing things the long way]
> import sys
> import os
> import re
> #from maya.OpenMaya import MGlobal
> 
> for p in sys.path: print ('Pre Path: ' + p)
> 
> #apiVerNum = MGlobal.apiVersion()
> #verString = MGlobal.mayaVersion()
> mayaVersion = '2011'
> 
> path = os.environ.get ("PYTHON_SITEPACKAGES")
> if(os.path.exists(path)):
>     sitePackages = os.listdir(path)
>     packagesToInsert = sitePackages[:] #duplicate the list so we can remove 
> any packages we don't want to insert
>     
>     for package in sitePackages:
>         if mayaVersion == '2011':
>             pymelMatch = re.match('pymel', package)
>             if pymelMatch:
>                 packagesToInsert.remove(package)
>     
>     for insertPackage in packagesToInsert:
>         sitePath = os.path.join(path, insertPackage)
>         realPath = os.path.realpath(sitePath)
>         print '*** Inserting package: %s from path: %s' % (insertPackage, 
> realPath)
>         sys.path.insert(0,realPath)
> else:
>     print "DEV: Site packages path does not exist in Maya.env - skipping"
> 
> for p in sys.path: print ('Post Path: ' + p)
> 
> The Maya.env variable PYTHON_SITEPACKAGES = 
> D:\pipeline_tools\python\site-packages\
> 
> with the following folders in D:\pipeline_tools\python\site-packages\:
> pymel_1.0.0rc2
> pyodbc-2.1.7
> 
> Anyway hopefully all that makes some sense and points the way to why it didnt 
> work :)
> 
> Dave 
> 
> -- 
> http://groups.google.com/group/python_inside_maya

-- 
http://groups.google.com/group/python_inside_maya

To unsubscribe, reply using "remove me" as the subject.

Reply via email to