[Matplotlib-users] build matplotlib in anaconda environment, wrong png version

Thomas Caswell tcaswell at gmail.com
Fri Mar 4 10:36:06 EST 2016


What does the mac equivalent of

10:34 $ ldd _png.cpython-35m-x86_64-linux-gnu.so
       linux-vdso.so.1 (0x00007ffc905e3000)
       libpng16.so.16 =>
/home/tcaswell/.virtualenvs/dd35/lib/libpng16.so.16 (0x00007f6cd496d000)
       libpython3.5m.so.1.0 =>
/home/tcaswell/.virtualenvs/dd35/lib/libpython3.5m.so.1.0
(0x00007f6cd447e000)
       libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x00007f6cd40c4000)
       libm.so.6 => /usr/lib/libm.so.6 (0x00007f6cd3dbe000)
       libgcc_s.so.1 => /usr/lib/libgcc_s.so.1 (0x00007f6cd3ba8000)
       libpthread.so.0 => /usr/lib/libpthread.so.0 (0x00007f6cd398b000)
       libc.so.6 => /usr/lib/libc.so.6 (0x00007f6cd35e9000)
       libz.so.1 => /home/tcaswell/.virtualenvs/dd35/lib/./libz.so.1
(0x00007f6cd33d3000)
       libdl.so.2 => /usr/lib/libdl.so.2 (0x00007f6cd31cf000)
       libutil.so.1 => /usr/lib/libutil.so.1 (0x00007f6cd2fcb000)
       librt.so.1 => /usr/lib/librt.so.1 (0x00007f6cd2dc3000)
       /usr/lib64/ld-linux-x86-64.so.2 (0x0000560627d6d000)

give?

On Fri, Mar 4, 2016 at 10:11 AM Gustavo Goretkin <gustavo.goretkin at gmail.com>
wrote:

> I have a small script that saves a figure as png
>
> sudo dtruss -t open python mintest_libpng.py 2> trace.txt
>
> I see open syscalls to the following
>
> open("/usr/local/opt/libpng/lib/libpng16.16.dylib\0", 0x0, 0x0)         =
> 4 0
> open("/opt/X11/lib/libpng15.15.dylib\0", 0x0, 0x0)         = 4 0
>
>
> I repeated that with the conda-installed version of matplotlib, and I
> don't see any open syscalls that open libpng (?) Any ideas for building
> matplotlib from source and installing in a conda environment?
>
> On Thu, Mar 3, 2016 at 4:53 PM, Gustavo Goretkin <
> gustavo.goretkin at gmail.com> wrote:
>
>> I just tried to build v1.5.1 from source, with `python setup.py develop`,
>> where `python` is a python within an anaconda distribution.
>>
>> It builds fine, and I can do many things with the library. But when
>> saving, I see the warning
>>
>>
>>
>> libpng warning: Application built with libpng-1.6.17 but running with
>>> 1.5.23
>>>
>>
>> and eventually
>>
>> /Users/goretkin/repos/matplotlib/lib/matplotlib/backends/backend_pdf.py
>> in _writePng(self, data)
>>    1283
>>    1284         buffer = BytesIO()
>> -> 1285         _png.write_png(data, buffer)
>>    1286         buffer.seek(8)
>>    1287         written = 0
>>
>> RuntimeError: Could not create write struct
>>
>>
>> Indeed, the build script shows
>>
>> BUILDING MATPLOTLIB
>>             matplotlib: yes [1.5.1]
>>                 python: yes [3.5.1 |Continuum Analytics, Inc.| (default,
>> Dec
>>                         7 2015, 11:24:55)  [GCC 4.2.1 (Apple Inc. build
>>                         5577)]]
>>               platform: yes [darwin]
>>
>> REQUIRED DEPENDENCIES AND EXTENSIONS
>>                  numpy: yes [version 1.10.4]
>>               dateutil: yes [using dateutil version 2.4.2]
>>                   pytz: yes [using pytz version 2015.7]
>>                 cycler: yes [using cycler version 0.10.0]
>>                tornado: yes [using tornado version 4.3]
>>              pyparsing: yes [using pyparsing version 2.0.3]
>>                 libagg: yes [pkg-config information for 'libagg' could not
>>                         be found. Using local copy.]
>>               freetype: yes [version 2.5.5]
>>                    png: yes [version 1.6.17]
>>                  qhull: yes [pkg-config information for 'qhull' could not
>> be
>>                         found. Using local copy.]
>>
>> Is this a problem with anaconda reporting the wrong paths? Indeed the
>> version of libpng in this anaconda environment is libpng16, so its right to
>> build against it. At run time, someone's to blame for loading the wrong
>> dynamic library.
>>
>> goretkin-mbp:lib goretkin$ ls -la ~/anaconda2/envs/py3_601/lib/ | grep png
>>> lrwxr-xr-x    1 goretkin  staff        10 Jan 23 14:14 libpng.a ->
>>> libpng16.a
>>> lrwxr-xr-x    1 goretkin  staff        17 Jan 23 14:14 libpng.dylib ->
>>> libpng16.16.dylib
>>> lrwxr-xr-x    1 goretkin  staff        11 Jan 23 14:14 libpng.la ->
>>> libpng16.la
>>> -rwxr-xr-x    7 goretkin  staff    271336 May 26  2015 libpng16.16.dylib
>>> -rw-r--r--    7 goretkin  staff    360224 May 26  2015 libpng16.a
>>> lrwxr-xr-x    1 goretkin  staff        17 Jan 23 14:14 libpng16.dylib ->
>>> libpng16.16.dylib
>>> -rwxr-xr-x    1 goretkin  staff       951 Jan 23 14:14 libpng16.la
>>>
>>
>>
>> $ otool -L ~/anaconda2/envs/py3_601/lib/libpng.dylib
>> /Users/goretkin/anaconda2/envs/py3_601/lib/libpng.dylib:
>>     libpng16.16.dylib (compatibility version 34.0.0, current version
>> 34.0.0)
>>     /usr/lib/libz.1.dylib (compatibility version 1.0.0, current version
>> 1.2.3)
>>     /usr/lib/libgcc_s.1.dylib (compatibility version 1.0.0, current
>> version 1.0.0)
>>     /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current
>> version 111.0.0)
>>
>>
>>
>> Thanks,
>> Gustavo
>>
>>
>>
> _______________________________________________
> Matplotlib-users mailing list
> Matplotlib-users at python.org
> https://mail.python.org/mailman/listinfo/matplotlib-users
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/matplotlib-users/attachments/20160304/23612d35/attachment.html>


More information about the Matplotlib-users mailing list