(Because this is really a MacOSX issue and not a Kepler issue, I can take it 
elsewhere)

On Jun 29, 2011, at 12:28 PM, Joe Futrelle wrote:

> Further results. My advice upthread "use launchctl to set [PATH]" is not 
> correct.
> 
> Putting Matlab on your path so that Kepler can invoke it turns out to be a 
> different process depending on whether you are running Kepler from a shell 
> prompt, or whether you're double-clicking the application icon.
> 
> As of Snow Leopard, it appears that the only way to set the PATH variable 
> seen by GUI applications when they are launched from the Finder/Dock is using 
> ~/.MacOSX/environment.plist.
> 
> However this approach is somewhat problematic in that in environment.plist 
> variable references (i.e., $PATH) are not expanded, so there is no non-kludgy 
> way I've found to *append* the Matlab executable's path to the PATH seen by 
> GUI applications, using environment.plist.
> 
> 
> The PATH approach that does work is using ordinary shell methods to append 
> the Matlab bin directory to the path, and then invoking Kepler from that 
> shell, like so:
> 
> $ launchctl getenv DYLD_LIBRARY_PATH
> /Applications/MATLAB_R2011a.app/bin/maci64
> $ export PATH=$PATH:/Applications/MATLAB_R2011a.app/bin
> $ echo $PATH
> /opt/local/bin:/opt/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin:/Applications/MATLAB_R2011a.app/bin
> $ open /Applications/Kepler-2.2/Kepler.app/
> 
> Can anyone advise how I might be able to get this working for launching 
> Kepler from Finder/Dock? Obviously I can just stick with the shell approach, 
> but I'd really like to be able to launch Kepler from the Dock.
> 
> On Jun 28, 2011, at 3:48 PM, Joe Futrelle wrote:
> 
>> OK, this thread resolved all of my issues. Thanks a lot guys! :)
>> 
>> To summarize:
>> 
>> DYLD_LIBRARY_PATH must include the Matlab libraries. Setting them with 
>> launchctl works, but don't expect to see them as shell environment variables 
>> unless you export them to the shell.
>> 
>> The Matlab executable (from its app package's bin directory) must be in your 
>> path. (Again, use launchctl to set).
>> 
>> I get different results when I use "open" from the command line to launch 
>> Kepler (works!) and when I double-click Kepler's app icon (doesn't), but I 
>> hypothesize that if I put both the DYLD_LIBRARY_PATH and PATH settings in 
>> /etc/launchd.conf and reboot, that it'll work. Unconfirmed as of yet.
>> 
>> Hopefully the above account is accurate and not confused ...
>> 
>> On Jun 28, 2011, at 3:20 PM, Daniel Crawl wrote:
>> 
>>> 
>>> The matlab binary must be in your $PATH.
>>> 
>>> --dan
>>> 
>>> On 6/28/11 12:12 PM, Joe Futrelle wrote:
>>>> This works.
>>>> 
>>>> And it gets me past the stack trace I was getting before! :)
>>>> 
>>>> Here's the transcript. I combined advice from two posts upthread.
>>>> 
>>>> bash-3.2# DYLD_LIBRARY_PATH=/Applications/MATLAB_R2011a.app/bin/maci64/ 
>>>> env | grep DYLD
>>>> DYLD_LIBRARY_PATH=/Applications/MATLAB_R2011a.app/bin/maci64/
>>>> bash-3.2# open /Applications/Kepler-2.2/Kepler.app
>>>> 
>>>> Now I'm getting a different stacktrace. I have a properly-licensed Matlab 
>>>> instance running and csh is @ /bin/csh.
>>>> 
>>>> ptolemy.kernel.util.IllegalActionException: matlabEngine.open(null) : 
>>>> can't find Matlab engine. Try starting Matlab by hand as an application to 
>>>> verify that Matlab is set up properly and the license is correct. Under 
>>>> Windows, try running "matlab /regserver", the Matlab C API communicates 
>>>> with Matlab via COM, and apparently the COM interface is not automatically 
>>>> registered when Matlab is installed. Under Linux and other types of UNIX, 
>>>> csh must be installed in /bin/csh.
>>>>    at ptolemy.matlab.Engine.open(Engine.java:280)
>>>>    at ptolemy.matlab.Engine.open(Engine.java:232)
>>>>    at ptolemy.matlab.Expression.preinitialize(Expression.java:303)
>>>>    at ptolemy.actor.Director.preinitialize(Director.java:1010)
>>>>    at ptolemy.actor.Director.preinitialize(Director.java:991)
>>>>    at 
>>>> ptolemy.domains.ct.kernel.CTDirector.preinitialize(CTDirector.java:748)
>>>>    at 
>>>> ptolemy.domains.ct.kernel.CTMultiSolverDirector.preinitialize(CTMultiSolverDirector.java:637)
>>>>    at ptolemy.actor.CompositeActor.preinitialize(CompositeActor.java:1735)
>>>>    at ptolemy.actor.Manager.preinitializeAndResolveTypes(Manager.java:983)
>>>>    at ptolemy.actor.Manager.initialize(Manager.java:643)
>>>>    at ptolemy.actor.Manager.execute(Manager.java:340)
>>>>    at ptolemy.actor.Manager.run(Manager.java:1164)
>>>>    at ptolemy.actor.Manager$3.run(Manager.java:1217)
>>>> 
>>>> 
>>>> On Jun 28, 2011, at 3:02 PM, Sean Riddle wrote:
>>>> 
>>>>> I can't get launchd.conf to set DYLD_LIBRARY_PATH, but for some reason
>>>>> it doesn't set anything else either. But DYLD_LIBRARY_PATH is
>>>>> settable, at least in some ways:
>>>>> 
>>>>> dhcp33-gc5:~ sean$ DYLD_LIBRARY_PATH=hello env | grep "DYLD_LIBRARY_PATH"
>>>>> DYLD_LIBRARY_PATH=hello
>>>>> 
>>>>> I would recommend trying the support including in the build system for
>>>>> setting environment variables. Create a file
>>>>> kepler/module-info/environment.txt and specify the value there. You
>>>>> can look at r/module-info/environment.txt for an example. Note that as
>>>>> in the example, you can (and possible must, I'm not sure) specify
>>>>> separate values for all three of the platforms that Kepler supports.
>>>>> 
>>>>> - Sean
>>>>> 
>>>>> On Tue, Jun 28, 2011 at 11:27 AM, Joe Futrelle<[email protected]>  wrote:
>>>>>> I tried that, didn't work.
>>>>>> 
>>>>>> Again, I have no problem setting system-wide environment variables in 
>>>>>> launchd.conf. If I set "foo" to "bar" then "foo" is set to "bar" in my 
>>>>>> environment. But if I set DYLD_LIBRARY_PATH to anything, it's like I 
>>>>>> didn't set it at all.
>>>>>> 
>>>>>> Exactly the same behavior with environment.plist. It seems to me like 
>>>>>> DYLD_LIBRARY_PATH is on some kind of blacklist.
>>>>>> 
>>>>>> On Jun 28, 2011, at 2:15 PM, Sean Riddle wrote:
>>>>>> 
>>>>>>> I always heard that if you wanted to set environment variables for GUI
>>>>>>> applications in OS X, you needed to edit the environment.plist file. A
>>>>>>> stackoverflow thread
>>>>>>> (http://stackoverflow.com/questions/135688/setting-environment-variables-in-os-x)
>>>>>>> says it can be set on a per-user basis at ~/.MacOSX/environment.plist.
>>>>>>> However, that thread also says that launchd.conf also works for GUI
>>>>>>> applications. Maybe try setting it in environment.plist to see if that
>>>>>>> makes a difference.
>>>>>>> 
>>>>>>> - Sean
>>>>>>> 
>>>>>>> PS - Property List Editor in Utilities is what creates and edits .plist 
>>>>>>> files.
>>>>>>> 
>>>>>>> On Tue, Jun 28, 2011 at 11:09 AM, Joe Futrelle<[email protected]>  
>>>>>>> wrote:
>>>>>>>> Hi, I'm trying to run Matlab codes from Kepler in Mac OS (Snow 
>>>>>>>> Leopard). As an inexperienced user I'm simply firing up the 
>>>>>>>> prepackaged Mac OS distribution of Kepler and double-clicking on the 
>>>>>>>> app icon.
>>>>>>>> 
>>>>>>>> It's no problem constructing a workflow with a "Matlab expression" in 
>>>>>>>> it, but when I run I get a stacktrace about the Matlab libraries not 
>>>>>>>> being on the DYLD_LIBRARY_PATH.
>>>>>>>> 
>>>>>>>> I'm having no trouble finding those libraries manually; they're right 
>>>>>>>> where they should be in my Matlab install, and they're 64 bit, and 
>>>>>>>> everything seems in order.
>>>>>>>> 
>>>>>>>> Setting DYLD_LIBRARY_PATH doesn't seem possible in Mac OS; I can set 
>>>>>>>> environment variables in launchd.conf, but launchd appears to silently 
>>>>>>>> ignore DYLD_LIBRARY_PATH; maybe it's special-casing it for some reason.
>>>>>>>> 
>>>>>>>> I'm having trouble finding a previous post on this list, or a bug in 
>>>>>>>> Kepler's bugzilla database, or a documentation section or FAQ entry 
>>>>>>>> that explains how to solve this. It's clear that some people have had 
>>>>>>>> problems with this in the past, but I don't see a clear description of 
>>>>>>>> what I should be doing. Any and all advice welcome.
>>>>>>>> 
>>>>>>>> Mac OS version: 10.6.7
>>>>>>>> Java version: 1.6.0_24 (Java HotSpot(TM) 64-Bit Server VM (build 
>>>>>>>> 19.1-b02-334, mixed mode))
>>>>>>>> Kepler version: 2.2
>>>>>>>> Matlab version: R2011a
>>>>>>>> 
>>>>>>>> --
>>>>>>>> Joe Futrelle
>>>>>>>> Woods Hole Oceanographic Institution
>>>>>>>> [email protected]
>>>>>>>> 
>>>>>>>> 
>>>>>>>> 
>>>>>>>> 
>>>>>>>> _______________________________________________
>>>>>>>> Kepler-users mailing list
>>>>>>>> [email protected]
>>>>>>>> http://lists.nceas.ucsb.edu/kepler/mailman/listinfo/kepler-users
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>>> --
>>>>>> Joe Futrelle
>>>>>> Woods Hole Oceanographic Institution
>>>>>> [email protected]
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>>> --
>>>> Joe Futrelle
>>>> Woods Hole Oceanographic Institution
>>>> [email protected]
>>>> 
>>>> 
>>>> 
>>>> 
>>>> _______________________________________________
>>>> Kepler-users mailing list
>>>> [email protected]
>>>> http://lists.nceas.ucsb.edu/kepler/mailman/listinfo/kepler-users
>>>> 
>>> 
>> 
>> --
>> Joe Futrelle
>> Woods Hole Oceanographic Institution
>> [email protected]
>> 
>> 
>> 
>> 
>> _______________________________________________
>> Kepler-users mailing list
>> [email protected]
>> http://lists.nceas.ucsb.edu/kepler/mailman/listinfo/kepler-users
>> 
> 
> --
> Joe Futrelle
> Woods Hole Oceanographic Institution
> [email protected]
> 
> 
> 
> 

--
Joe Futrelle
Woods Hole Oceanographic Institution
[email protected]




_______________________________________________
Kepler-users mailing list
[email protected]
http://lists.nceas.ucsb.edu/kepler/mailman/listinfo/kepler-users

Reply via email to