Sur mon mac book (OS X 10.12.4), j'ai deux fichiers suivants libpng.16.16.dylib
: un dans /opt/X11/bin
pour lequel otool
rapports
/opt/X11/lib/libpng16.16.dylib:
/opt/X11/lib/libpng16.16.dylib (compatibility version 43.0.0, current version 43.0.0)
/usr/lib/libz.1.dylib (compatibility version 1.0.0, current version 1.2.5)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1226.10.1)
et un autre dans Users/me/anaconda/lib
avec l'installation Python d'anaconda, pour laquelle otool
rapports
/Users/me/anaconda/lib/libpng16.16.dylib:
@rpath/libpng16.16.dylib (compatibility version 44.0.0, current version 44.0.0)
/usr/lib/libz.1.dylib (compatibility version 1.0.0, current version 1.2.5)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1197.1.1)
Dans mon script de démarrage, j'ai mis DYLD_LIBRARY_PATH
d'inclure /opt/X11/lib
.
Maintenant, quand je veux import matplotlib
de ipython3
(de la distribution anaconda), j'obtiens une erreur
ImportError: dlopen(/Users/walter1/anaconda/lib/python3.6/site-packages/matplotlib/_png.cpython-36m-darwin.so, 2): Library not loaded: @rpath/libpng16.16.dylib
Referenced from: /Users/walter1/anaconda/lib/python3.6/site-packages/matplotlib/_png.cpython-36m-darwin.so
Reason: Incompatible library version: _png.cpython-36m-darwin.so requires version 44.0.0 or later, but libpng16.16.dylib provides version 43.0.0
Il semble donc que dlopen
essaie /opt/X11/lib/libpng.16.16.dylib
plutôt que celle sous anaconda
.
Existe-t-il un moyen d'éviter cela sans changer DYLD_LIBRARY_PATH
? Je ne me souviens pas pourquoi j'ai mis DYLD_LIBRARY_PATH
comme ça, mais quel serait l'effet d'omettre /opt/X11/lib
d'elle ?