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.

Reply via email to