Windows question from Mac guy

Charles Hartman charles.hartman at conncoll.edu
Fri Mar 18 12:07:34 EST 2005


I'm sitting here (briefly!) with a Windows machine trying to build a 
distributable for my app. I'm using py2exe and Inno Setup. (This is 
Apple-framework Python 2.3, wxPython 2.5.3.8.) Everything works! Except 
. . .

My app has a data file, scandictionary.txt, that it needs to load when 
it starts up. On Mac it gets stuffed into the app bundle so it's hidden 
and there's no problem finding it. On Windows (XP), Inno Setup is 
putting it where I expected it to be, in the {app} directory along with 
my app's .exe and the various .dlls etc that Python needs. But my app 
isn't finding it. Here's the code I use for that:

TEXTDICTIONARY = 'scandictionary.txt'
. . .
	try:
		f = open(TEXTDICT, 'rU')
	except IOError:			# dict file has gone astray
		wildcard = "All files (*.*) | *.*"
		dlg = wx.FileDialog(None, message="Locate the scandictionary file",
					defaultDir=os.getcwd(), defaultFile="", wildcard=wildcard,
					style=wx.OPEN | wx.CHANGE_DIR)
		if dlg.ShowModal() == wx.ID_OK:
			f = open(dlg.GetPath())
			dlg.Destroy()

When it doesn't find the file by itself (why not??), it starts looking 
down in some godawful place in Common or something, which is likely to 
baffle a user. (It baffles me, though yes I *can* navigate to the right 
place.)

This is pretty much the same code I use when the user selects "Load 
text file," and the app goes straight to the right directory (its own 
directory), where it finds a sample text file I supply. Is os.getcwd() 
working differently in the two cases?

Help help, I'm confused. Any help much appreciated.


Charles Hartman
Professor of English, Poet in Residence
http://cherry.conncoll.edu/cohar
http://villex.blogspot.com




More information about the Python-list mailing list