> we have local userSetup run a global userSetupAll. This way we can  
> have local functions run together with functions that are global for  
> every one.

we do something similar, but the other way around.  we have a global  
userSetup.py and userSetup.mel which call user's local userSetup.py  
and userSetup.mel.

there are a couple of things to keep in mind:  only one  
userSetup.py/.mel is executed per user, so make sure that the global  
network path is before the user's local path in PYTHONPATH and  
MAYA_SCRIPT_PATH, and make sure that maya isn't prepending any  
unexpected values to these.

userSetup.py is run very early in the load process, and based on your  
symptoms, it might be running before Maya.env is parsed.  i'm not  
really sure because we have a tool for dynamically setting our  
PYTHONPATH and MAYA_SCRIPT_PATH envs at the system level, prior to  
Maya launching and we don't use Maya.env at all.  this makes certain  
that values are set in time.

if you want to get even deeper into this, the really cool thing is you  
can check out exactly where userSetup.py is being executed: it's in  
your maya site-packages/maya/app/startup/basic.py:


#       module: maya.app.startup.basic
#
#       This module is always imported during Maya's startup.  It is  
imported from
#       both the maya.app.startup.batch and maya.app.startup.gui scripts
#

import maya, maya.app, maya.app.commands
from maya import cmds, utils
import sys, os.path, atexit

def setupScriptPaths():
        """
        Add Maya-specific directories to sys.path
        """
        
        # Per-version prefs scripts dir (eg .../maya8.5/prefs/scripts)
        #
        prefsDir = cmds.internalVar( userPrefDir=True )
        sys.path.append( os.path.join( prefsDir, 'scripts' ) )
        
        # Per-version scripts dir (eg .../maya8.5/scripts)
        #
        scriptDir = cmds.internalVar( userScriptDir=True )
        sys.path.append( os.path.dirname(scriptDir) )
        
        # User application dir (eg .../maya/scripts)
        #
        appDir = cmds.internalVar( userAppDir=True )
        sys.path.append( os.path.join( appDir, 'scripts' ) )
        
def executeUserSetup():
        """
        Look for userSetup.py in the search path and execute it in the  
"__main__"
        namespace
        """
        try:
                for path in sys.path:
                        scriptPath = os.path.join( path, 'userSetup.py' )
                        if os.path.isfile( scriptPath ):
                                import __main__
                                execfile( scriptPath, __main__.__dict__ )
        except Exception, e:
                sys.stderr.write( "Failed to execute userSetup.py\n" )
                sys.stderr.write( str( e ) )    
        
# Set up sys.path to include Maya-specific user script directories.
setupScriptPaths()

# Set up auto-load stubs for Maya commands implemented in libraries  
which are not yet loaded
maya.app.commands.processCommandList()

# Run the user's userSetup.py if it exists
executeUserSetup()

# Register code to be run on exit
atexit.register( maya.app.finalize )

# Set up string table instance for application
maya.stringTable = utils.StringTable()


that should really let you accurately troubleshoot this.

-chad



On Aug 7, 2009, at 10:24 AM, Sylvain Berger wrote:

> that's a good idea... I finally when with the userSetup.mel calling  
> the network python script...  Works fine
>
>
> On Fri, Aug 7, 2009 at 11:50 AM, yury nedelin <ynede...@gmail.com>  
> wrote:
>
>
> yury
>
>
>
>
> On Fri, Aug 7, 2009 at 7:44 AM, sberger <sylvain.ber...@gmail.com>  
> wrote:
>
> Hi, I have this setup for Maya 2009
>
> My user Pref are localed on the network m:\profiles\sylvain.berger 
> \maya
> \...
> in these user pref I have a maya.env file that add a network
> MAYA_SCRIPT_PATH=m:\library\maya\scripts\
>
> when I put the userSetup.py in the MAYA_SCRIPT_PATH location it
> doesn't get executed,
> it only runs when it is in the scripts folder of my maya pref folder
>
> I also have a PYTHONPATH in my maya.env file, and puting the
> userSetup.py file there doesn't work as well.
>
> It only runs when it is in my pref folder.
>
> did anyone know how to get the userSetup.py to work outside the pref
> folder?  I would like to have a userSetup.py global to all user...  I
> think I could revert to using a userSetup.mel and call my userSetup.py
> from the mel file... but it is not clean and I hate things that are
> messy :)
>
> Thanks
>
>
>
>
>
>
>
> -- 
> "A pit would not be complete without a Freeman coming out of it."
> The Vortigaunt
>
> >


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

Reply via email to