On Thu, 9 Jun 2005 08:52:59 +0200
Christian Meesters <[EMAIL PROTECTED]> wrote:

> Hi
> 
> Currently I'm writing a GUI application with wxPython (on OS X, but I  
> guess the problem is the same, regardless of the UNIX derivative one is  
> using). When I start the main script where it is located the  
> application finds all resource files (non-Python files like images and  
> html files for html windows) without any problem. However, if a put a  
> link in /usr/local/bin and start the script using the link the  
> application cannot find those resource files - unless, of course, I  
> will use full absolute paths to point to those files. One brief example  
> to illustrate the problem:
> 
> The class Goals is in a file called Help.py, located in '/gui_lib/' as  
> seen from my main script.
> 
> class Goals(wx.Frame):
>       def __init__(self,parent,frame,title,size,pos=wx.DefaultPosition):
>               wx.Frame.__init__(self,parent, 
> -1,title,size,style=wx.DEFAULT_FRAME_STYLE)
>               self.frame = frame
>               self.cwd = os.getcwd()  
>       
>               self.html = HtmlWindow(self,-1)
>               self.html.LoadPage(os.path.join(self.cwd,'gui_lib/Goals.html')) 
>  
> #this, of course, won't work
>               #if the main script is called from somewhere else and not the  
> directory where the main script
>               #is located
> 
> Any ideas what I could use instead of os.getcwd to construct a relative  
> path which will work even if I port the script to an other machine?
> 
> Cheers
> Christian
> 

Hi Christian,

try

    self.cwd = os.path.abspath(sys.path[0])

sys.path[0] is the directory of your main program file, with os.path.abspath() 
you can
get rid of the "../../" stuff at the beginning of the path if the program is 
called from a link.

I hope this helps

Michael


_______________________________________________
Tutor maillist  -  Tutor@python.org
http://mail.python.org/mailman/listinfo/tutor

Reply via email to