I have a script to investigate mxd's and save them as lyr symbology/kmz and sld which works fine when run from the .py but does not run when used as a tool from arctoolbox. I have tried arcpy.AddMessage statements to see what's wrong but it just does not work. 

Please help...

SCRIPT

    # Author: George Corea, Atherton Tablelands GIS
    # [email protected]; [email protected]
    
    # Licence:Creative Commons
    
    import arcpy, string, datetime, shutil, os
    import arcpy.mapping as MAP
    
    #Read input parameters from script tool
    MXDList = string.split(arcpy.GetParameterAsText(0), ";")
    ProjectPath = arcpy.GetParameterAsText(1)
    
    #MXDList=r'P:\2012\183_TownPlanning_Symbology\Working\TP_Biodiversity.mxd'
    #ProjectPath=r'P:\2012\183_TownPlanning_Symbology\Working'
    
    count=0
    #Loop through each MXD and print
    #for MXDPath in MXDList:
    #MXDFile=r'P:\2012\189_Townplanning_scheme\Working\TRC_PlanningScheme_LayoutMaster_v10.mxd'
    
    count=count+1
    arcpy.AddMessage('starting...'+str(MXDList))
    ##try:
    for MXDFile in MXDList:
    
        mxd=arcpy.mapping.MapDocument(MXDFile)
        outPath = ProjectPath+'\\'+mxd.filePath[mxd.filePath.rfind('\\')+1:mxd.filePath.rfind('.')]
        arcpy.AddMessage('working on 1...'+str(mxd)+str(outPath))
        try:
            os.mkdir(outPath)
        except:
            pass
        dfList = arcpy.mapping.ListDataFrames(mxd)
        arcpy.AddMessage('working on 2...'+str(dfList)+str(outPath))
        for df in dfList:
        #msd = outPath+'.msd'
        #arcpy.mapping.ConvertToMSD(mxd, msd, df, "NORMAL", "NORMAL")
        #arcpy.AddMessage(str(count)+'...' +str(outPath)+'...'+'\n')
            lyrList=arcpy.mapping.ListLayers(mxd, "", df)
            outPath = ProjectPath+'\\'+mxd.filePath[mxd.filePath.rfind('\\')+1:mxd.filePath.rfind('.')]+'\\'+str(df.name)
            #os.mkdir(outPath)
            arcpy.AddMessage('working on 3...'+str(lyrList)+str(outPath))
            for lyrFile in lyrList:
                arcpy.AddMessage(str(lyrFile))
                if lyrFile.isFeatureLayer == True:
                    if lyrFile.visible == True:
                        arcpy.AddMessage(str(lyrFile)+' is visible')
                        #print str(lyrFile)+' is visible...exporting dataset'
                        outFileN=str(arcpy.ValidateTableName(lyrFile.longName[lyrFile.longName.rfind('\\')+1:]))
                        try:
                            arcpy.FeatureClassToFeatureClass_conversion(lyrFile.dataSource, outPath, outFileN)
                            arcpy.SaveToLayerFile_management(lyrFile,outPath+'\\'+outFileN+'.lyr', "ABSOLUTE")
                            arcpy.LayerToKML_conversion(outPath+'\\'+outFileN+'.lyr', outPath+'\\'+outFileN+'.kmz')
                        except:
                            errorm=arcpy.GetMessages()
                            arcpy.AddMessage('Error...'+str(errorm)+' ...continuing')
    
    
                arcpy.AddMessage(str(lyrFile)+' is visible. Not Processing')
                #print str(lyrFile)+' is not visible'
        ##except:
        ##    errorM=arcpy.GetMessages()
        ##    arcpy.AddMessage(str(count)+str(errorM)+'\n continuing...\n')
        ##    print errorM
        ##    #MAP.PrintMap(MXD, printer)
        #Remove variable reference to file
        del mxd, msd

ERROR
![enter image description here][1] and that's it. The text 'working 2...' from the arcpy.AddMessages doesn't work.

When run in the Python Interpreter window you get

    >>> import os
    >>> os.getcwd()
    'Q:\\scripts\\py'
    >>> MXDFile=r'P:\2011\Job_031_TownPlanning_SeriesProduction\Working\mxd\Nov14_Landslide\18_TownPlanning_B&L_Overlay_Ver4a_Chillagoe.mxd'
    >>> mxd=arcpy.mapping.MapDocument(MXDFile)
    >>> ProjectPath=r'Q:\scripts\py\junk'
    >>> outPath = ProjectPath+'\\'+mxd.filePath[mxd.filePath.rfind('\\')+1:mxd.filePath.rfind('.')]
    >>> dfList = arcpy.mapping.ListDataFrames(mxd)
    >>> for df in dfList:
    ...     lyrList=arcpy.mapping.ListLayers(mxd, "", df)
    ...     print lyrList
    ...     
    [<map group layer u'Residences'>, <map layer u'Residential Structure'>, <map layer u'Residential Structure'>, <map group layer u'Base_Top'>, <map layer u'Regional Activity Centre'>, <map layer u'Homesteads'>, <map layer u'State Controlled Road'>, <map layer u'Local Road'>, <map layer u'Local Road'>, <map layer u'Wetland'>, <map layer u'Waterbody'>, <map layer u'Protected Area'>, <map layer u'TRC Boundary'>, <map layer u'Property Boundary'>, <map layer u'Watercourse'>, <map layer u'Tri_RiversTRCClip'>, <map layer u'Rural_DrainageTRCClip'>, <map group layer u'Hazard'>, <map group layer u'NewLandslide'>, <map layer u'100k_trc_tiles_TVM'>, <map layer u'BULLOCK_CREEK'>, <map layer u'BULIMBA'>, <map layer u'BLACKDOWN'>, <map layer u'BELLEVUE'>, <map layer u'MAYTOWN'>, <map layer u'M_SURPRISE'>, <map layer u'LYNDBROOK'>, <map layer u'KIRRAMA'>, <map layer u'KINGFISH'>, <map layer u'HIGHBURY'>, <map layer u'CASHMERE'>, <map layer u'CAIRNS'>, <map layer u'MUNGANA'>, <map layer u'MOUNT'>, <map layer u'MOSSMAN'>, <map layer u'GALLOWAY'>, <map layer u'CONJUBOY'>, <map layer u'CHILLAGOE'>, <map layer u'BARTLE_FRERE'>, <map layer u'ATHERTON'>, <map layer u'ABINGDON_DOWNS'>, <map layer u'WALSH'>, <map layer u'WALLABADAH'>, <map layer u'VALLEY_LAGOONS'>, <map layer u'TULLY'>, <map layer u'STRATHMORE'>, <map layer u'ST_RONANS'>, <map layer u'SOUTH'>, <map layer u'RUMULA'>, <map layer u'RAVENSHOE'>, <map layer u'Landslide Zone'>, <map layer u'High Bushfire Hazard'>, <map layer u'High Bushfire Hazard Buffer '>, <map layer u'Medium Bushfire Hazard'>, <map layer u'Medium Bushfire Hazard Buffer'>, <map group layer u'Base_Bottom'>, <map layer u'Protected Area'>]
    [<map group layer u'Residences'>, <map layer u'Residential Structure'>, <map layer u'Residential Structure'>, <map group layer u'Base_Top'>, <map layer u'Regional Activity Centre'>, <map layer u'Homesteads'>, <map layer u'State Controlled Road'>, <map layer u'Local Road'>, <map layer u'Local Road'>, <map layer u'Wetland'>, <map layer u'Waterbody'>, <map layer u'Protected Area'>, <map layer u'TRC Boundary'>, <map layer u'Property Boundary'>, <map layer u'River'>, <map layer u'Tri_RiversTRCClip'>, <map layer u'Rural_DrainageTRCClip'>, <map group layer u'Hazard'>, <map group layer u'NewLandslide'>, <map layer u'100k_trc_tiles_TVM'>, <map layer u'BULLOCK_CREEK'>, <map layer u'BULIMBA'>, <map layer u'BLACKDOWN'>, <map layer u'BELLEVUE'>, <map layer u'MAYTOWN'>, <map layer u'M_SURPRISE'>, <map layer u'LYNDBROOK'>, <map layer u'KIRRAMA'>, <map layer u'KINGFISH'>, <map layer u'HIGHBURY'>, <map layer u'CASHMERE'>, <map layer u'CAIRNS'>, <map layer u'MUNGANA'>, <map layer u'MOUNT'>, <map layer u'MOSSMAN'>, <map layer u'GALLOWAY'>, <map layer u'CONJUBOY'>, <map layer u'CHILLAGOE'>, <map layer u'BARTLE_FRERE'>, <map layer u'ATHERTON'>, <map layer u'ABINGDON_DOWNS'>, <map layer u'WALSH'>, <map layer u'WALLABADAH'>, <map layer u'VALLEY_LAGOONS'>, <map layer u'TULLY'>, <map layer u'STRATHMORE'>, <map layer u'ST_RONANS'>, <map layer u'SOUTH'>, <map layer u'RUMULA'>, <map layer u'RAVENSHOE'>, <map layer u'Landslide Zone'>, <map layer u'High Bushfire Hazard'>, <map layer u'High Bushfire Hazard Buffer '>, <map layer u'Medium Bushfire Hazard'>, <map layer u'Medium Bushfire Hazard Buffer'>, <map group layer u'Base_Bottom'>, <map layer u'Protected Area'>]
    [<map layer u'Regional Activity Centre'>, <map layer u'State Controlled Road'>, <map layer u'Frame_Extents2'>, <map layer u'TRC Boundary'>]
    >>> 

TOOL PARAMS
![enter image description here][2]

=== RESPONSE to Answers/Comments in post ===


    Messages
    Executing: InvestigateMXDs P:\2012\096_CCRC_2_Biodiversity\Working\BiodiversityOverlay_70k_Series3b.mxd D:\junk
    Start Time: Mon Aug 06 09:01:22 2012
    Running script InvestigateMXDs...
    Now processing ...
      Map: P:\2012\096_CCRC_2_Biodiversity\Working\BiodiversityOverlay_70k_Series3b.mxd

So basically it hands on the df list. There is no further error message even if you try to capture it.

Test on simple mxd is below. Note that this works fine when run as a python script directly.

![enter image description here][3]

    Messages
    Executing: InvestigateMXDs P:\2012\183_TownPlanning_Symbology\Working\test.mxd P:\2012\183_TownPlanning_Symbology\Working\junk
    Start Time: Tue Aug 07 09:11:35 2012
    Running script InvestigateMXDs...
    Now processing ...
      Map: P:\2012\183_TownPlanning_Symbology\Working\test.mxd

When run as a python we get the following in less than 30s

>>> 

    starting...['test.mxd']
    working on 1...<geoprocessing Map object object at 0x029471E0>P:\2012\183_TownPlanning_Symbology\Working\test
    
    working on 2...[<DataFrame object at 0xee12950[0xee22fc0]>]P:\2012\183_TownPlanning_Symbology\Working\test
    working on 3...in: P:\2012\183_TownPlanning_Symbology\Working\test\Layers
    TRC_Boundary is visible PROCESSING...
    TRC_Boundary is not visible. Not Processing
    Map_Extents is visible PROCESSING...
    Map_Extents is not visible. Not Processing

and directory structure
![enter image description here][3]
=== END Response ===


  [3]: https://i.sstatic.net/D9yNi.jpg
  [4]: https://i.sstatic.net/db5z5.jpg

  [1]: https://i.sstatic.net/b0vQJ.jpg
  [2]: https://i.sstatic.net/MR1Us.jpg