Daniel, you are right that I've installed my own copy of Python, in my case as part of Anaconda <http://docs.continuum.io/anaconda/index.html>, a popular Python distribution that comes with a bunch of libraries and an IDE.
I think you have diagnosed the issue with /usr/bin/env python accurately. When I run type python from a terminal window I get the desired (Anaconda) path, but when I run M-x shell in Emacs and then run type python from the shell buffer I get the default /usr/bin/python. Sounds like launchd.conf may be the only comprehensive solution. However, apparently launchd does not do any parameter expansion<http://apple.stackexchange.com/a/106372/60655>so I cannot do something like setenv PATH /Users/lop/anaconda/bin:$PATH Is there a way I can avoid having to hardcode my entire PATH (or whatever the PATH should be at this point in initialization)? This seems fragile: setenv PATH /Users/lop/anaconda/bin:/everything/else:/even_more/ BTW, while researching this I stumbled onto EnvPane<https://github.com/hschmidt/EnvPane>which seems to provide a nicer interface for launchd.conf for per-user settings. However, I don't see a way to handle parameter expansion there either. On Tuesday, April 1, 2014 9:03:20 PM UTC-4, Daniel wrote: > > Aha! Looks like you've installed Python...maybe using a version manager? > Not familiar with Python tooling. Somewhere other than /usr(/local)/bin, > though. GUI apps don't pick up changes to your PATH that you make in > .bashrc/.profile/etc. So when QS executes /usr/bin/env python, what env > finds is /usr/bin/python, and PYTHONPATH and all the other associated > variables are also not set/set to their system defaults. > > In Snow Leopard, you could fix this by creating a file > `~/.MacOSX/environment.plist`, a dict of VAR_NAME -> 'value'. That no > longer works, and unfortunately there's no longer a way to do it per-user > at all. What you *can* do is edit /etc/launchd.conf—plain text file, > syntax is `setenv VAR_NAME value`. This will apply to the entire system, > though, so be at least a *little* cautious of putting things *ahead* of > the normal PATH, which is what you'd need in this case. (I do it, but there > are certainly dangers.) > > If QS is the only application you care about this for (but it's often > not—any IDE or other tool that can run scripts probably wants the same > envvars as your shell as well), you could also make a script, shell, Apple > or otherwise, that launches Quicksilver after manually setting the PATH. As > long as QS is launched with this script, it will have the right PATH and > shell scripts will work. (Google `appify.sh` for how to turn such a script > into an "application" that will work correctly if you add it to your login > items.) > > Extending this slightly, if *most* of the apps that matter are launched > manually, after you log in, you could have launchd run a script on login > that turns back around and calls `launchctl setenv VAR val...`. Any apps > already launched won't be affected, though, and launchd does stuff in > undefined order. Although there are ways to semi-force it to do stuff in > order, so maybe... > > Caaaaan you tell I've dealt with this before? :/ environment.plist really > was a near-perfect solution, I don't know why it was removed. Hope the > above is helpful. > > On Monday, March 31, 2014 10:14:09 PM UTC-4, lopmenhed wrote: >> >> OK, thank you both. For posterity: `#!/usr/bin/env python` did not work >> for me, but providing the full path to Python did. >> >> On Monday, March 31, 2014 2:39:23 PM UTC-4, 1.61803 wrote: >>> >>> On Monday, March 31, 2014 12:35:50 AM UTC+2, lopmenhed wrote: >>> >>>> Thank you, 1.61803. But do you have a specific suggestion about how >>>> this might help? I'm unable to see how it fits in. >>>> >>> >>> on open files -- instead of process text >>> do shell script "/usr/bin/python " & command >>> >>> and the necessary adjustments. >>> >>> But it seems that Rob's suggestion works by itself. So I would stick to >>> the builtin action. >>> >> -- You received this message because you are subscribed to the Google Groups "Quicksilver" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/blacktree-quicksilver. For more options, visit https://groups.google.com/d/optout.
