[Matplotlib-devel] TclError with TkAgg + matplotlib 1.5.1 + Anaconda/miniconda on OS X 10.11
Nathan Goldbaum
nathan12343 at gmail.com
Thu Jul 21 11:34:54 EDT 2016
I think you're seeing
https://groups.google.com/a/continuum.io/forum/#!topic/anaconda/xssOnleIPFw
On Thu, Jul 21, 2016 at 10:31 AM, Joseph Long <jlong at stsci.edu> wrote:
> Hi all,
>
> I'm having issues using TkAgg on matplotlib 1.5.1 from the Anaconda
> distribution that I've been unable to get to the bottom of. When trying to
> show the plot, I get an exception _tkinter.TclError with the message
> "invalid command name "PyAggImagePhoto"" and the plot does not display.
> The full gory details are at the end of this message, but in brief to
> reproduce (with conda):
>
> $ conda create --yes -n testcase-tkinter-2 python=3.5 matplotlib
> $ source activate testcase-tkinter-2
> $ python -c "import matplotlib; matplotlib.use('TkAgg'); from matplotlib
> import pyplot as plt; plt.plot(1,1); plt.show()"
>
> Displaying the plot gets as far as opening a window, but does not show the
> plot. The exception is "_tkinter.TclError: invalid command name
> "PyAggImagePhoto""
>
> Based on the warnings emitted (see below), it looks like a library
> mismatch of some kind between the system Tk and the Anaconda Tk.
>
> When I reported the issue to the Anaconda maintainers, I was pointed to
> this PR: https://github.com/matplotlib/matplotlib/pull/6442 They say that
> this will fix the issue, but not until 1.5.2 is released.
>
> My question, I guess, is: will this fix the issue? And will 1.5.2 be
> released soon?
>
> Many thanks,
>
> Joseph Long
> Space Telescope Science Institute
>
> ----
>
> To reproduce the objc warnings on OS X 10.11 with conda:
>
> $ conda create --yes -n testcase-tkinter-2 python=3.5 matplotlib
> $ source activate testcase-tkinter-2
> $ python -c "import matplotlib; matplotlib.use('TkAgg'); from
> matplotlib import pyplot as plt"
> objc[82465]: Class TKApplication is implemented in both
> /System/Library/Frameworks/Tk.framework/Versions/8.5/Tk and
> /Users/jlong/anaconda/envs/testcase-tkinter-2/lib/libtk8.5.dylib. One of
> the two will be used. Which one is undefined.
> objc[82465]: Class TKMenu is implemented in both
> /System/Library/Frameworks/Tk.framework/Versions/8.5/Tk and
> /Users/jlong/anaconda/envs/testcase-tkinter-2/lib/libtk8.5.dylib. One of
> the two will be used. Which one is undefined.
> objc[82465]: Class TKContentView is implemented in both
> /System/Library/Frameworks/Tk.framework/Versions/8.5/Tk and
> /Users/jlong/anaconda/envs/testcase-tkinter-2/lib/libtk8.5.dylib. One of
> the two will be used. Which one is undefined.
> objc[82465]: Class TKWindow is implemented in both
> /System/Library/Frameworks/Tk.framework/Versions/8.5/Tk and
> /Users/jlong/anaconda/envs/testcase-tkinter-2/lib/libtk8.5.dylib. One of
> the two will be used. Which one is undefined.
>
> Python still exits normally in this case.
>
> Using the same environment, you can reproduce the exceptions we've been
> seeing whenever plotting with TkAgg. Using Python interactively, we get:
>
> $ python
> Python 3.5.2 |Continuum Analytics, Inc.| (default, Jul 2 2016,
> 17:52:12)
> [GCC 4.2.1 Compatible Apple LLVM 4.2 (clang-425.0.28)] on darwin
> Type "help", "copyright", "credits" or "license" for more information.
> >>> import matplotlib
> >>> matplotlib.use('TkAgg')
> >>> from matplotlib import pyplot as plt
> objc[83006]: Class TKApplication is implemented in both
> /System/Library/Frameworks/Tk.framework/Versions/8.5/Tk and
> /Users/jlong/anaconda/envs/testcase-tkinter-2/lib/libtk8.5.dylib. One of
> the two will be used. Which one is undefined.
> objc[83006]: Class TKMenu is implemented in both
> /System/Library/Frameworks/Tk.framework/Versions/8.5/Tk and
> /Users/jlong/anaconda/envs/testcase-tkinter-2/lib/libtk8.5.dylib. One of
> the two will be used. Which one is undefined.
> objc[83006]: Class TKContentView is implemented in both
> /System/Library/Frameworks/Tk.framework/Versions/8.5/Tk and
> /Users/jlong/anaconda/envs/testcase-tkinter-2/lib/libtk8.5.dylib. One of
> the two will be used. Which one is undefined.
> objc[83006]: Class TKWindow is implemented in both
> /System/Library/Frameworks/Tk.framework/Versions/8.5/Tk and
> /Users/jlong/anaconda/envs/testcase-tkinter-2/lib/libtk8.5.dylib. One of
> the two will be used. Which one is undefined.
> >>> plt.plot([1,2,3], [1,2,3])
> [<matplotlib.lines.Line2D object at 0x111e0f588>]
> >>> plt.show()
> Exception in Tkinter callback
> Traceback (most recent call last):
> File
> "/Users/jlong/anaconda/envs/testcase-tkinter-2/lib/python3.5/site-packages/
> matplotlib/backends/tkagg.py", line 22, in blit
> id(data), colormode, id(bbox_array))
> _tkinter.TclError: invalid command name "PyAggImagePhoto"
>
> During handling of the above exception, another exception occurred:
>
> Traceback (most recent call last):
> File
> "/Users/jlong/anaconda/envs/testcase-tkinter-2/lib/python3.5/tkinter/__init
> __.py", line 1550, in __call__
> return self.func(*args)
> File
> "/Users/jlong/anaconda/envs/testcase-tkinter-2/lib/python3.5/site-packages/
> matplotlib/backends/backend_tkagg.py", line 283, in resize
> self.show()
> File
> "/Users/jlong/anaconda/envs/testcase-tkinter-2/lib/python3.5/site-packages/
> matplotlib/backends/backend_tkagg.py", line 355, in draw
> tkagg.blit(self._tkphoto, self.renderer._renderer, colormode=2)
> File
> "/Users/jlong/anaconda/envs/testcase-tkinter-2/lib/python3.5/site-packages/
> matplotlib/backends/tkagg.py", line 30, in blit
> id(data), colormode, id(bbox_array))
> _tkinter.TclError
>
> And that's where it stands.
>
> ----
>
> Here are some potentially relevant outputs from otool -L:
>
> $ otool -L
> /Users/jlong/anaconda/envs/testcase-tkinter-2/lib/python3.5/site-packages/m
> atplotlib/backends/_tkagg.so
>
> /Users/jlong/anaconda/envs/testcase-tkinter-2/lib/python3.5/site-packages/m
> atplotlib/backends/_tkagg.so:
> @rpath/libtk8.5.dylib (compatibility version 8.5.0, current version
> 8.5.18)
> @rpath/libtcl8.5.dylib (compatibility version 8.5.0, current version
> 8.5.18)
> /usr/lib/libstdc++.6.dylib (compatibility version 7.0.0, current
> version 52.0.0)
> /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current
> version 159.1.0)
>
> $ otool -L
> /Users/jlong/anaconda/envs/testcase-tkinter-2/lib/libtcl8.5.dylib
> /Users/jlong/anaconda/envs/testcase-tkinter-2/lib/libtcl8.5.dylib:
> libtcl8.5.dylib (compatibility version 8.5.0, current version 8.5.18)
>
> /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundati
> on (compatibility version 150.0.0, current version 476.0.0)
> /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)
>
> $ otool -L
> /Users/jlong/anaconda/envs/testcase-tkinter-2/lib/libtk8.5.dylib
> /Users/jlong/anaconda/envs/testcase-tkinter-2/lib/libtk8.5.dylib:
> libtk8.5.dylib (compatibility version 8.5.0, current version 8.5.18)
>
> /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundati
> on (compatibility version 150.0.0, current version 476.0.0)
> /System/Library/Frameworks/Cocoa.framework/Versions/A/Cocoa
> (compatibility version 1.0.0, current version 12.0.0)
> /System/Library/Frameworks/Carbon.framework/Versions/A/Carbon
> (compatibility version 2.0.0, current version 136.0.0)
> /System/Library/Frameworks/IOKit.framework/Versions/A/IOKit
> (compatibility version 1.0.0, current version 275.0.0)
> /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)
>
> /System/Library/Frameworks/CoreServices.framework/Versions/A/CoreServices
> (compatibility version 1.0.0, current version 32.0.0)
> /usr/lib/libobjc.A.dylib (compatibility version 1.0.0, current version
> 227.0.0)
> /System/Library/Frameworks/AppKit.framework/Versions/C/AppKit
> (compatibility version 45.0.0, current version 949.0.0)
>
> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Applica
> tionServices (compatibility version 1.0.0, current version 34.0.0)
> /System/Library/Frameworks/Foundation.framework/Versions/C/Foundation
> (compatibility version 300.0.0, current version 677.12.0)
>
> ----
>
> Here's the set of all packages installed in the conda environment
> testcase-tkinter-2:
>
> $ conda list
> # packages in environment at
> /Users/jlong/anaconda/envs/testcase-tkinter-2:
> #
> cycler 0.10.0 py35_0 defaults
> freetype 2.5.5 1 defaults
> jwst-visibility (/Users/jlong/software/jwst_visibility) 0.0.1
> <pip>
> libpng 1.6.22 0 defaults
> matplotlib 1.5.1 np111py35_0 defaults
> mkl 11.3.3 0 defaults
> numpy 1.11.1 py35_0 defaults
> openssl 1.0.2h 1 defaults
> pip 8.1.2 py35_0 defaults
> pyparsing 2.1.4 py35_0 defaults
> pyqt 4.11.4 py35_4 defaults
> python 3.5.2 0 defaults
> python-dateutil 2.5.3 py35_0 defaults
> pytz 2016.6.1 py35_0 defaults
> qt 4.8.7 4 defaults
> readline 6.2 2 <unknown>
> requests 2.10.0 <pip>
> setuptools 23.0.0 py35_0 defaults
> sip 4.18 py35_0 defaults
> six 1.10.0 py35_0 defaults
> sqlite 3.13.0 0 defaults
> tk 8.5.18 0 defaults
> wheel 0.29.0 py35_0 defaults
> xz 5.2.2 0 defaults
> zlib 1.2.8 3 defaults
>
>
>
> _______________________________________________
> Matplotlib-devel mailing list
> Matplotlib-devel at python.org
> https://mail.python.org/mailman/listinfo/matplotlib-devel
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/matplotlib-devel/attachments/20160721/dd5d795c/attachment-0001.html>
More information about the Matplotlib-devel
mailing list