PyPlot.jl icon indicating copy to clipboard operation
PyPlot.jl copied to clipboard

Julia crash: libpangoft2-1.0.so.0 issue.

Open stefano-tronci opened this issue 8 years ago • 5 comments

A similar issue was reported here. In my case, to produce the crash this is sufficient:

Using PyPlot
plot(rand(10))
julia: symbol lookup error: /usr/bin/../lib/libpangoft2-1.0.so.0: undefined symbol: FcWeightFromOpenType

I am on Arch Linux. Running Julia 0.4.5. Here some additional info:

PyPlot.backend
"qt4agg"
ls -la /usr/lib/libpangoft2-1.0.so.0
lrwxrwxrwx 1 root root 27 Apr 12 22:38 /usr/lib/libpangoft2-1.0.so.0 -> libpangoft2-1.0.so.0.4000.1

Hope you find this useful.

stefano-tronci avatar Apr 26 '16 19:04 stefano-tronci

Does it work (with the same backend) from Python?

stevengj avatar Apr 26 '16 21:04 stevengj

Hi there.

I never used python, I hope this is doing the test it is meant to:

#!/usr/bin/env python

import matplotlib
matplotlib.use('qt4agg')

import matplotlib.pyplot as plt
plt.plot([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
plt.ylabel('some numbers')
plt.show()

Works with no issues.

stefano-tronci avatar Apr 27 '16 18:04 stefano-tronci

Possibly it is a shared-library path issue? Maybe if you add the right path to your LD_LIBRARY_PATH then Python will be able to load the right libraries.

stevengj avatar Apr 27 '16 23:04 stevengj

I have the same issue on Arch Linux with Julia v0.4.5 since yesterday.

For me also the Python example above fails with: /home/abieler/anaconda/bin/python: symbol lookup error: /usr/lib/libpangoft2-1.0.so.0: undefined symbol: FcWeightFromOpenType

conda install -c asmeurer pango

fixed the python side of things: https://github.com/ContinuumIO/anaconda-issues/issues/368.

But now PyPlot exits with a segfault when trying to plot something.

abieler avatar Apr 28 '16 06:04 abieler

Unfortunately my understanding of environment variables and shared libraries is rather sloppy, however:

locate libpangoft2-1.0.so.0
/usr/lib/libpangoft2-1.0.so.0
/usr/lib/libpangoft2-1.0.so.0.4000.1
/usr/lib32/libpangoft2-1.0.so.0
/usr/lib32/libpangoft2-1.0.so.0.4000.1

If I am not wrong, everything in /usr/lib, /usr/lib32 and /usr/lib64 should be linked automatically. By running ldconfig:

ldconfig -v
...
libtiffxx.so.5 -> libtiffxx.so.5.2.4
libpangoft2-1.0.so.0 -> libpangoft2-1.0.so.0.4000.1
libatk-1.0.so.0 -> libatk-1.0.so.0.22009.1
...

Here the contents of LD_LIBRARY_PATH:

echo $LD_LIBRARY_PATH
/home/crocoduck/GNUstep/Library/Libraries:/usr/lib

It seems everything should be working libraries-wise. Or I am wrong? Do you have some idea about what to set LD_LIBRARY_PATH to?

stefano-tronci avatar Apr 28 '16 19:04 stefano-tronci