I tried to take stack dumps (attached bellow) and it seems that the first pair of calls is coming from CompileInScriptedSection while the second pair is from ExecInScriptedSection. Do you have a clue what's going on here?
0.00000000 *** OnEnterScript *** 0.00142864 File "C:\Python27\lib\site-packages\win32com\server\policy.py", line 324, in _InvokeEx_ 0.00142864 return self._invokeex_(dispid, lcid, wFlags, args, kwargs, serviceProvider) 0.00142864 File "C:\Python27\lib\site-packages\win32com\server\policy.py", line 585, in _invokeex_ 0.00142864 return func(*args) 0.00142864 File "C:\Python27\lib\site-packages\win32comext\axscript\client\framework.py", line 610, in SetScriptState 0.00142864 self.Run() 0.00142864 File "C:\Python27\lib\site-packages\win32comext\axscript\client\framework.py", line 788, in Run 0.00142864 self.ExecutePendingScripts() 0.00142864 File "C:\Python27\lib\site-packages\win32comext\axscript\client\framework.py", line 736, in ExecutePendingScripts 0.00142864 self.DoExecutePendingScripts() 0.00142864 File "C:\Python27\lib\site-packages\win32comext\axscript\client\pyscript.py", line 237, in DoExecutePendingScripts 0.00142864 if self.CompileInScriptedSection(codeBlock, "exec"): 0.00142864 File "C:\Python27\lib\site-packages\win32comext\axscript\client\framework.py", line 872, in CompileInScriptedSection 0.00142864 self.BeginScriptedSection() 0.00142864 File "C:\Python27\lib\site-packages\win32comext\axscript\client\framework.py", line 972, in BeginScriptedSection 0.00142864 win32api.OutputDebugString("".join(traceback.format_stack())) 0.00574597 *** OnLeaveScript *** 0.00618566 File "C:\Python27\lib\site-packages\win32com\server\policy.py", line 324, in _InvokeEx_ 0.00618566 return self._invokeex_(dispid, lcid, wFlags, args, kwargs, serviceProvider) 0.00618566 File "C:\Python27\lib\site-packages\win32com\server\policy.py", line 585, in _invokeex_ 0.00618566 return func(*args) 0.00618566 File "C:\Python27\lib\site-packages\win32comext\axscript\client\framework.py", line 610, in SetScriptState 0.00618566 self.Run() 0.00618566 File "C:\Python27\lib\site-packages\win32comext\axscript\client\framework.py", line 788, in Run 0.00618566 self.ExecutePendingScripts() 0.00618566 File "C:\Python27\lib\site-packages\win32comext\axscript\client\framework.py", line 736, in ExecutePendingScripts 0.00618566 self.DoExecutePendingScripts() 0.00618566 File "C:\Python27\lib\site-packages\win32comext\axscript\client\pyscript.py", line 237, in DoExecutePendingScripts 0.00618566 if self.CompileInScriptedSection(codeBlock, "exec"): 0.00618566 File "C:\Python27\lib\site-packages\win32comext\axscript\client\framework.py", line 880, in CompileInScriptedSection 0.00618566 self.EndScriptedSection() 0.00618566 File "C:\Python27\lib\site-packages\win32comext\axscript\client\framework.py", line 979, in EndScriptedSection 0.00618566 win32api.OutputDebugString("".join(traceback.format_stack())) 0.00675985 *** OnEnterScript *** 0.00718076 File "C:\Python27\lib\site-packages\win32com\server\policy.py", line 324, in _InvokeEx_ 0.00718076 return self._invokeex_(dispid, lcid, wFlags, args, kwargs, serviceProvider) 0.00718076 File "C:\Python27\lib\site-packages\win32com\server\policy.py", line 585, in _invokeex_ 0.00718076 return func(*args) 0.00718076 File "C:\Python27\lib\site-packages\win32comext\axscript\client\framework.py", line 610, in SetScriptState 0.00718076 self.Run() 0.00718076 File "C:\Python27\lib\site-packages\win32comext\axscript\client\framework.py", line 788, in Run 0.00718076 self.ExecutePendingScripts() 0.00718076 File "C:\Python27\lib\site-packages\win32comext\axscript\client\framework.py", line 736, in ExecutePendingScripts 0.00718076 self.DoExecutePendingScripts() 0.00718076 File "C:\Python27\lib\site-packages\win32comext\axscript\client\pyscript.py", line 238, in DoExecutePendingScripts 0.00718076 self.ExecInScriptedSection(codeBlock, globs) 0.00718076 File "C:\Python27\lib\site-packages\win32comext\axscript\client\framework.py", line 899, in ExecInScriptedSection 0.00718076 self.BeginScriptedSection() 0.00718076 File "C:\Python27\lib\site-packages\win32comext\axscript\client\framework.py", line 972, in BeginScriptedSection 0.00718076 win32api.OutputDebugString("".join(traceback.format_stack())) 3.00900340 *** OnLeaveScript *** 3.00964451 File "C:\Python27\lib\site-packages\win32com\server\policy.py", line 324, in _InvokeEx_ 3.00964451 return self._invokeex_(dispid, lcid, wFlags, args, kwargs, serviceProvider) 3.00964451 File "C:\Python27\lib\site-packages\win32com\server\policy.py", line 585, in _invokeex_ 3.00964451 return func(*args) 3.00964451 File "C:\Python27\lib\site-packages\win32comext\axscript\client\framework.py", line 610, in SetScriptState 3.00964451 self.Run() 3.00964451 File "C:\Python27\lib\site-packages\win32comext\axscript\client\framework.py", line 788, in Run 3.00964451 self.ExecutePendingScripts() 3.00964451 File "C:\Python27\lib\site-packages\win32comext\axscript\client\framework.py", line 736, in ExecutePendingScripts 3.00964451 self.DoExecutePendingScripts() 3.00964451 File "C:\Python27\lib\site-packages\win32comext\axscript\client\pyscript.py", line 238, in DoExecutePendingScripts 3.00964451 self.ExecInScriptedSection(codeBlock, globs) 3.00964451 File "C:\Python27\lib\site-packages\win32comext\axscript\client\framework.py", line 905, in ExecInScriptedSection 3.00964451 self.EndScriptedSection() 3.00964451 File "C:\Python27\lib\site-packages\win32comext\axscript\client\framework.py", line 979, in EndScriptedSection 3.00964451 win32api.OutputDebugString("".join(traceback.format_stack())) 3.01041079 pythoncom error: 3.01048589 Unexpected exception in gateway method 'SetScriptSite' 3.01056170 3.01062036 3.01094675 Traceback (most recent call last): 3.01094675 File "C:\Python27\lib\site-packages\win32com\server\policy.py", line 324, in _InvokeEx_ 3.01094675 return self._invokeex_(dispid, lcid, wFlags, args, kwargs, serviceProvider) 3.01094675 File "C:\Python27\lib\site-packages\win32com\server\policy.py", line 585, in _invokeex_ 3.01094675 return func(*args) 3.01094675 File "C:\Python27\lib\site-packages\win32comext\axscript\client\framework.py", line 580, in SetScriptSite 3.01094675 self.lcid = site.GetLCID() 3.01094675 AttributeError: 'NoneType' object has no attribute 'GetLCID' 3.01102114 pythoncom error: 3.01107931 Unexpected gateway error 3.01122880 3.01147223 3.01194453 Traceback (most recent call last): 3.01194453 File "C:\Python27\lib\site-packages\win32com\server\policy.py", line 324, in _InvokeEx_ 3.01194453 return self._invokeex_(dispid, lcid, wFlags, args, kwargs, serviceProvider) 3.01194453 File "C:\Python27\lib\site-packages\win32com\server\policy.py", line 585, in _invokeex_ 3.01194453 return func(*args) 3.01194453 File "C:\Python27\lib\site-packages\win32comext\axscript\client\framework.py", line 580, in SetScriptSite 3.01194453 self.lcid = site.GetLCID() 3.01194453 AttributeError: 'NoneType' object has no attribute 'GetLCID' 2013/5/30 Mark Hammond <skippy.hamm...@gmail.com> > Apart from the engine being called with no script to execute for some > reason, it may be that an event handler is being added, which causes Python > to execute things twice - once to "build" the event handler, and again when > it is actually executed. > > Either way, if you check out win32comext/axscript/client/**framework.py > and look for ApplyInScriptedSection(), you will find where these calls > originate from. If you can print (or otherwise arrange to see) what the > code is, it might give us more of a clue. > > HTH, > > Mark > > > On 30/05/2013 3:34 AM, Milan Kaše wrote: > >> Hello, >> a user of our application which can host various active scripting >> engines reported problems when using the application together with >> Python active scripting engine. I traced the problem down to the order >> in which the engine calls the site's OnEnterScript/OnLeaveScript methods. >> >> The usual scenario with other engines (including MS JScript and >> VBScript) is: >> 1. OnEnterScript >> 2. ...executing script... >> 3. OnLeaveScript >> >> However with Python engine, after calling >> IActiveScript.SetScriptState(**SCRIPTSTATE_CONNECTED) the scenario is >> following: >> 1. OnEnterScript >> 2. OnLeaveScript >> 3. OnEnterScript >> 4. ...executing script... >> 5. OnLeaveScript >> >> One would expect either the first scenario or in case the events are >> raised multiple times, then the calls should be nested (as stated in >> MSDN, >> http://msdn.microsoft.com/en-**us/library/9c1cww48(v=vs.94).**aspx<http://msdn.microsoft.com/en-us/library/9c1cww48(v=vs.94).aspx> >> ). >> Is the Python's way of calling these methods intentional or is it a bug? >> >> Thanks, >> Milan >> >> >> ______________________________**_________________ >> python-win32 mailing list >> python-win32@python.org >> http://mail.python.org/**mailman/listinfo/python-win32<http://mail.python.org/mailman/listinfo/python-win32> >> >> >
_______________________________________________ python-win32 mailing list python-win32@python.org http://mail.python.org/mailman/listinfo/python-win32