Hello gang,
 
I know the subject is vague, I googled around and found lots of messages like that.
 
Here is my scenario:
 
The py script works.  No errors in the Python Shell.  I made the EXE using PyBuilder,
and GUI2Exe. 
 
The EXE loads and runs, except a portion of the program doesn't work, it almost seems
like it's getting skipped over.  No errors, no text file with tracebacks.
 
The modules I imported are (I'll comment the ones that are my own or may not be popular):
 
import wx.animate   # for animated GIF files (splashscreen uses one)
import chat_bmp     # embedded bmp
import config_bmp   # embedded bmp
import load_bmp     # embedded bmp
import exit_bmp      # embedded bmp
import start_bmp     # embedded bmp 
import help_bmp     # embedded bmp
import info_bmp      # embedded bmp
import stop_bmp     # embedded bmp
import wx
import os
import sys
import time
import linecache
import pickle
import string
import wx.lib.filebrowsebutton
import wx.lib.dialogs
import wx.lib.colourselect as CSel
from wx.lib.wordwrap import wordwrap
from wx.lib.pubsub import Publisher    # MVC for inter-frame write texting.
 
The quick description of what the program does:
 
User picks a log file be read.  The program takes custom search
strings and sorts log entries based on those search string and places
the entries into a frame with a text control widget via writetext. 
It does this by using Publisher() from wx.lib.pubsub. 
 
Most of the program is a GUI (wxPython) and user defining options
like the search string, frame label, fonts, colors, sounds. 
 
The part that gets skipped over in the EXE is within an wx.Timer event.
 
The code that seems to be getting skipped is:
 
<CODE>
 
    def FLCplus1(self):
        LR1 = linecache.getline(LogDirValue, CurrentLineCount)
        LineRead1 = LR1[FrontStripInt:]
        for i in range(1,7):
            if LineRead1.find(globals()['C%iSearchString'%i]) >=0:
                Publisher.sendMessage(('C%i'%i, 'message'), [LineRead1])
                CurrentTime = time.localtime(time.time())
                TimeStamp = time.strftime("%H:%M.%S", CurrentTime)
                self.MainFrameTextCtrl.WriteText('(' + TimeStamp + ')  ' + 'Got match! Publishing...\n')
 
        CurrentTime = time.localtime(time.time())
        TimeStamp = time.strftime("%H:%M.%S", CurrentTime)
        self.MainFrameTextCtrl.WriteText('(' + TimeStamp + ')  ' + 'Done restarting...\n')
        linecache.clearcache()
 
</CODE>
 
The code that calls FLCplus1() is this:
 
<CODE>
 
    def ProcessLog(self, event):
        global FirstLineCount
        global CurrentLineCount
        CurrentLineCount = len(open(LogDirValue, 'rb').readlines())
        if CurrentLineCount == FirstLineCount:
            CurrentTime = time.localtime(time.time())
            TimeStamp = time.strftime("%H:%M.%S", CurrentTime)
            self.MainFrameTextCtrl.WriteText('(' + TimeStamp + ')  ' + 'Line count equal...\n')
            return
        elif CurrentLineCount > FirstLineCount:
            CurrentTime = time.localtime(time.time())
            TimeStamp = time.strftime("%H:%M.%S", CurrentTime)
            self.MainFrameTextCtrl.WriteText('(' + TimeStamp + ')  ' + 'Line count greater...\n')
            self.FLCplus1()
 
 
</CODE>
 
On a side note, the program does the above if / elif in ProcessLog() if the log file is
larger.  It just seems to fly right by the FLCplus1()
 
The reason I added all the time stamps and textctrl widgets is to "see" what's going on
in the program while it's running and not use the print command, or stdout.
 
Is it something I'm not importing or may not be getting imported into the EXE?
 
Like I stated above, the regular Py file works great.  The EXE loads, runs for the most
part but doesn't "DO" what the program is suposed to do.
 
I'd really like to get this project finished completely, and this is the last step.
 
Thank you in advance,
 
Steve Freedenburg