Interesting ... I have no such symlink in /usr/bin, but that must be because I
installed Kepler by dragging the app into my Applications folder, and perhaps
you installed it some other way (e.g,. building from source)?
On Jun 29, 2011, at 2:15 PM, Daniel Crawl wrote:
>
> Hi Joe,
>
> In Kepler, you can see what $PATH contains by using the
> Expression Evaluator in the Tools menu. Run this:
>
> getenv('PATH')
>
> On my mac, $PATH does not contain /Applications/Matlab...,
> but does have /usr/bin, which has a symlink to the Matlab
> binary. Matlab probably created the link when it installed.
> If you can't edit $PATH, you could make a symlink in a
> directory in $PATH.
>
> --dan
>
>
> On 6/29/11 9:28 AM, 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