[python-win32] [pywin32 extensions] Traceback error on running startup script

Maggard, Eric eric.maggard at hp.com
Mon Apr 2 16:47:22 CEST 2012


Hi Mark,

Thanks for the message.  Nope, I am not using Unicode, so I guess that is where the problem is.

I did get 2.7 running and initializing, but I am having a problem getting the interactive window to show, open a script, or create new script.

I tried to run the startup.py and intpyapp.py scripts, but neither did anything that I could see.  Then I setup this script to try to start an interactive session:

import sys 
import win32ui 
# First step - redirect python output to the debugging device, until we 
# can create a window to capture it. 

# Note that this is only useful while debugging, and simply sends any 
# Python output (ie, exceptions while developing the startup code) is 
# printed to the MSVC debugger. Note that since this code was written, 
# the win32trace module has appeared, giving another alternative to 
# debugging this code. 
class DebugOutput: 
  softspace=1 
  def write(self,message): 
    win32ui.OutputDebug(message) 
sys.stderr=sys.stdout=DebugOutput() 

# One of your first priorities should be to set sys.stdout to somewhere useful,
# depending on what useful means to your application. This code simply creates 
# the Pythonwin Interactive Window, which handles this automatically. 

# Now here is the code that does the real work. 
import win32con 
from pywin.framework import intpyapp, app, interact

class SpecApp(intpyapp.InteractivePythonApp):
  def InitInstance(self):
    # Call the base class (if you want)
    intpyapp.InteractivePythonApp.InitInstance(self)
    # Do domething useful, specific to your app.
    # Here, we minimise the interactive window.
    # (after painting the main frame)
    win32ui.PumpWaitingMessages()
    interact.edit.currentView.GetParent().ShowWindow(win32con.SW_MINIMIZE)

app = SpecApp()

It didn't start an interactive session in my application.

I looked in the intpyapp.py script and I tried to setup menu items to do call the ID_FILE_IMPORT, ID_FILE_RUN, and ID_VIEW_INTERACTIVE.  But even running the intpyapp.py script, the menu items in my app or greyed out. Do I need to setup handlers under my app to process these?  I didn't think I would need to, since I thought the pywin would process the calls first.  How can I check that pywin is actually getting initialized and running?

Thanks,
Eric

-----Original Message-----
From: Mark Hammond [mailto:skippy.hammond at gmail.com] 
Sent: Sunday, April 01, 2012 6:06 PM
To: Maggard, Eric
Cc: python-win32 at python.org
Subject: Re: [python-win32] [pywin32 extensions] Traceback error on running startup script

Are you building your code as a unicode application?  In Python 3.3, the 
"TCHAR" will actually be unicode.  If you do roll back to python 2.x, it 
will be a regular "char *".

Mark

On 2/04/2012 2:04 AM, Maggard, Eric wrote:
> Hi,
>
> I am working on a Win7 machine (64-bit), but would like to embed pywin
> into a 32-bit MFC app.  I downloaded the 217 build for python 3.2 and
> then downloaded the python-3.2.2.msi install package.  I installed
> python and then installed the pywin32 extensions.  I also downloaded the
> source files pywin32-217.zip and successfully built the pythonwin
> application.  I made sure I downloaded the 32 bit versions to match my
> application I am embedding into.
>
> I followed the embedding guild:
> http://tgolden.sc.sabren.com/pywin32-docs/html/pythonwin/doc/EmbeddingWin32ui.html
> and then also looked at your pythonwin application files.
>
> When I start mu application, I am getting a traceback error when the
> function Win32uiHostGlue::DynamicApplicationInit is executing the
> following line:
>
>        rc = (*pfnWin32uiInit)(this, (TCHAR *)cmd, (TCHAR *)additionalPaths);
>
> The error that it is showing is:
>
>        tuple: ('invalid syntax', ('<string>', 1, 1,
> '??????????????????????\x0f\n'))
>
> I have tried to pass a CString, string, CString.GetString(), and
> string.c_str() and the traceback error changes slightly, but I always
> get the error. I am thinking python is not parsing the command string
> correctly.
>
> I copied the pythonwin directly under the build directory I did to my
> application directory.  I traced the steps leading up to that line and
> it seems python is getting initialized correctly.  I can start the
> pythonwin application that is included under the build directory... so, I
> know it should be working.
>
> Here is the initialization I am using:
>
>        CString startup = "import pywin.framework.startup";
>
> // Check for theGlue Initialization
>
> if (!theGlue.DynamicApplicationInit(startup)) {
>
>              AfxMessageBox("Could not attach to the Python win32ui
> extensions.");
>
> //          return FALSE;
>
>        }
>
> else
>
>              AfxMessageBox("Python initialized");
>
> If I can't get this working, then I am thinking about removing the 3.2
> version and trying the 3.1 or the 2.7 versions.
>
> Thanks for your help,
>
> Eric
>
>
>
> _______________________________________________
> python-win32 mailing list
> python-win32 at python.org
> http://mail.python.org/mailman/listinfo/python-win32
>




More information about the python-win32 mailing list