On Jun 12, 2006, at 4:52 PM, Bob Swerdlow wrote:

> Hi, our app is using py2app 0.2.1 and we've been quite happy with it -
> thanks!
>
> However, we have found that it crashes if the application is  
> started in a
> folder whose name contains a colon.  Of course, the Finder does not  
> allow
> the user to use a colon in file names, but other applications do.   
> According
> to the user:

In Carbon APIs, these colons are represented by '/' (the POSIX path  
delimiter)... from Finder (and I think also at the lowest level HFS+  
APIs), that path looks like "6/10/06". Anything using the POSIX APIs  
is going to see "6:10:06" though.

> Is this a known problem?  Is there a work-around?

It's a problem with Python actually, which persists even in the  
trunk. Probably because a colon is often treated as a delimiter for a  
list of paths (such as the PATH or PYTHONPATH environment variables).  
If you run Python from a path containing ':' and look at sys.path,  
you'll see that the paths that would've contained a colon are  
mangled. I'm not sure where this happens and I don't have time to  
track it down at the moment.

It won't be possible to work around this without patching the Python  
interpreter. For now you'll just have to tell your users Don't Do  
That. I can only think of two workarounds:
(1) just tell the user that they can't run the app from a path  
containing a ":" in a relatively friendly manner (could be done in  
the py2app bootstrap).
(2) make a symlink somewhere from the py2app bootstrap if a ":" is in  
the working directory and re-exec.

I'm unlikely to do either of those things any time soon, but patches  
are accepted. If you come up with a patch for Python, file it on  
sourceforge and shoot a message referencing it here and someone will  
definitely apply it. I'd hurry up though, because Python 2.5 is  
pretty far along.

-bob

_______________________________________________
Pythonmac-SIG maillist  -  Pythonmac-SIG@python.org
http://mail.python.org/mailman/listinfo/pythonmac-sig

Reply via email to