[Pythonmac-SIG] Running Python scripts without full paths

Daniel Lord dmlsj@yahoo.com
Sat, 30 Nov 2002 20:28:23 -0800


And, worse yet, when Apple implemented their repelace, they didn't 
think about variable expansion so user customizations like "~" and 
environment variables that owrk on all other systems like ${CLASSPATH} 
and ${PYTHONPATH} are inert in a plist further messing things up. 
Perhaps an application of the Law of Unintended Consequences. But is 
sure makes life on OS X difficult.

On Saturday, Nov 30, 2002, at 15:06 US/Pacific, Jack Jansen wrote:

>
> On zaterdag, nov 30, 2002, at 21:00 Europe/Amsterdam, kevin parks 
> wrote:
>
>> Someone who really understands this ought to put something up on the 
>> web on this!
>
> The problem is that noone really understands it:-(
>
> As I have my historian's hat on today anyway, let me explain a bit how 
> we got in the mess we are now.
>
> Initially there was .profile for /bin/sh (only read when a login shell 
> started), .login for csh (only read when a login shell started) and 
> .cshrc for csh (only read when the shell was *not* a login shell). To 
> simplify matters we'll forget about the bourne shell and its brethren 
> (bash, zsh, esh, many more).
>
> The csh and its descendents (like tcsh) added system-wide default 
> initialization files (/etc/csh.login and /etc/csh.cshrc). Tcsh 
> complicated matters, because whereas it shared .login with csh, it 
> would prefer a .tcshrc file over a .cshrc file (but fallback to the 
> latter if the former didn't exist). Then came windowing systems like 
> X11, which would start up applications before anything resembling a 
> "login shell" appeared, and you wanted to be able to set environment 
> variables there too. So now there were three initialization files: 
> .login (login shells), .cshrc (non-login shells) and something else 
> for the windowing system (often .xinitrc, but there's other 
> possibilities too:-). At this point some systems tried to rationalize 
> things and provided /etc/profile.d, which was read by /etc/csh.login 
> as well as the equivalents for all other shells as well as by the 
> window system startup. At least: each read the bits it thought it 
> required. And each of the files in /etc/profile.d could be overridden 
> in your home directory (just as /etc/csh.login could be overridden by 
> .login). But then people who wanted a custom .login needed to get bits 
> and pieces from /etc/profile.d themselves, because .login replaces 
> /etc/csh.login, in doesn't add to it. So by this time it was one big 
> giant mess, and the only surefire way to get a working set of 
> initialization files was to keep experimenting until you had something 
> that worked, and then *never* *ever* touch that again (at least not 
> structurally).
>
> And then Apple appeared on the Unix front and made things even more 
> difficult because they didn't want to mimic their 
> window-system-initialization on X11, probably because they didn't want 
> to depend on /bin/sh or /bin/csh in the login sequence, and they 
> invented environment.plist.
>
> And, of course, this is only the part of the story that I understand:-)
> --
> - Jack Jansen        <Jack.Jansen@oratrix.com>        
> http://www.cwi.nl/~jack -
> - If I can't dance I don't want to be part of your revolution -- Emma 
> Goldman -
>
>
> _______________________________________________
> Pythonmac-SIG maillist  -  Pythonmac-SIG@python.org
> http://mail.python.org/mailman/listinfo/pythonmac-sig
>