That looks like the same error you reported in an earlier message in this 
thread. Can you check which version of Images you have?

julia> Pkg.installed("Images")
v"0.2.31"

The change relevant for your case was to simply add a "const" declaration to 
one line of code:
https://github.com/timholy/Images.jl/blob/master/src/ioformats/libmagickwand.jl#L29

If somehow there's a version problem you can't resolve, you can test that 
directly.

> Why is it trying to open ".dylib"?

When it compiles the `ccall` in init(), it's appending ".dylib" and then 
issuing a `dlopen`. Since `libwand` is empty, you end up with a complete path 
name of ".dylib".

However, it goes much deeper. Superficially, it looks like this should not be a 
problem: since `have_imagemagick` is false, you might think that `ccall` would 
never run, so why is the error being triggered? It turns out that `ccall` is a 
bit of a special case: all the underlying work to load the library happens at 
compile-time, not at run-time. So if julia doesn't know the value of 
`have_imagemagick` in advance, it still has to go about compiling that 
`ccall`, and so you still get the error even though you'll never actually run 
the `ccall`.

By making `have_imagemagick` be a constant, the compiler should be able to 
know its value when it compiles `init`, and therefore it can skip that branch 
of the conditional altogether. If adding `const` doesn't work for you, then 
perhaps it's a julia version issue. I tested this by renaming the library (so 
`find_library` couldn't find it), and for me on Linux this works on the latest 
version of julia. Not sure which version you're running.

--Tim

On Sunday, March 16, 2014 10:24:57 PM Nathaniel Virgo wrote:
> Many thanks!
> 
> Now I'm getting the same weird error using Images that I was getting using
> GLUT:
> 
> julia> using Images
> ERROR: error compiling init: error compiling init: could not load
> module : dlopen(.dylib, 1): image not found
>  in reload_path at loading.jl:144
>  in _require at loading.jl:59
>  in require at loading.jl:43
> while loading /Users/ndv21/.julia/v0.3/Images/src/Images.jl, in
> expression starting on line 205
> 
> Why is it trying to open ".dylib"?
> 
> Unfortunately I didn't try running this before doing Pkg.update(), so I
> don't know if it's the update that caused this, or whether it's the result
> of the problem I'm having with the GLUT package.
> 
> Best regards,
> Nathaniel
> 
> On 16 March 2014 22:09, Tim Holy <tim.h...@gmail.com> wrote:
> > I just tagged a new version that should be smarter about how it fails when
> > ImageMagick isn't installed. Pkg.update() will get it for you.
> > 
> > --Tim
> > 
> > On Sunday, March 16, 2014 09:08:45 PM Nathaniel Virgo wrote:
> > > On 16 March 2014 20:07, Tim Holy <tim.h...@gmail.com> wrote:
> > > 
> > > Hi Nathaniel,
> > > 
> > > > On Saturday, March 15, 2014 11:42:42 PM Nathaniel Virgo wrote:
> > > > > Although the Homebrew issue is apparently fixed, I still get the
> > > > > following error.
> > > > 
> > > > I just don't know enough about Homebrew to be able to advise you here.
> > > 
> > > No problem! As a newcomer, it wasn't obvious to me whether the error was
> > > coming from Homebrew rather than anything else.
> > > 
> > > Run those diagnostic commands _after_ you get this error---the whole
> > 
> > point
> > 
> > > > is
> > > > to see the variable settings that contributed to this problem.
> > > 
> > > I see. Sorry, I assumed I wouldn't be able to run the other commands if
> > 
> > the
> > 
> > > first failed. Here is the output:
> > > 
> > > julia> Images.LibMagick.have_imagemagick
> > > false
> > > 
> > > julia> Images.LibMagick.libwand
> > > ""
> > > 
> > > I have to say that your experience here makes me think Images needs to
> > > be
> > > 
> > > > split into several parts, so that binary dependencies do not get in
> > > > the
> > > > way of
> > > > people who just want to use it for its algorithms. Sadly, I'm just not
> > > > sure
> > > > I'll have time to get to that in the next week or two.
> > > 
> > > That sounds like it would make sense once you have the time. (I'm not in
> > 
> > a
> > 
> > > hurry personally.)
> > > 
> > > Nathaniel

Reply via email to