[Matplotlib-users] TkAgg won't plot - how to debug?

Benjamin Root ben.v.root at gmail.com
Mon Nov 6 16:17:50 EST 2017


Just to make absolutely clear, you set the default backend in your
matplotlibrc file to "agg" and it still hung on you? If that is the case,
then the problem isn't tkinter.

Some possibilities are

1) a massive font database that matplotlib is trying to build a cache for
2) import of matplotlib from somewhere else unexpected (which would explain
pycharm's behavior), and that file/module is misbehaving. We have seen
instances in the past where users would name their plotting porting of
their code "matplotlib.py" or "pylab.py" or some such, and then start to
wonder why their code doesn't work properly.

Have you looked to see if there are other programs that are running during
the import stage? One thing matplotlib does for the first import is to
create a font cache, and it does this by using some fc-list program, iirc.
This can take a long time on some machines that have adobe's font
collection installed, for example, but that is usually a Windows thing....

Ben Root


On Mon, Nov 6, 2017 at 4:09 PM, Andrew Z <formisc at gmail.com> wrote:

> Tkinter was most likely installed as part of rpm install.
> Backends - not really. I do know that with mpld3and agg  the scripts hang.
> Ihave reinstalled matplot using rpm ( rpm comes only in 1.5 version) and
> with pip3.
> Today i tried on the office machine (fedora 25). Rpm brings only
> matplot1.5.
>
> maybe 2 installed locally using pip3 messes with 1.5 leftover or libraries.
> Not sure how to validate this idea though..
> Probably unrelated:
> In pycharm pyplot is not been recognized as part of matplotlib when i
> "import matplotlib.pyplot. yet the script doesnt crash on import
> statement...
>
>
>
>
>
> On Nov 6, 2017 15:13, "Benjamin Root" <ben.v.root at gmail.com> wrote:
>
> How did you install Tkinter? Have you tested any other backends? Does this
> happen for just the head-less "Agg" backend set as default?
>
> On Sat, Nov 4, 2017 at 3:35 PM, Andrew Z <formisc at gmail.com> wrote:
>
>> more relevant information:
>> [az at hp src]$ python3.5
>> Python 3.5.3 (default, May 11 2017, 09:10:41)
>> [GCC 6.3.1 20161221 (Red Hat 6.3.1-1)] on linux
>> Type "help", "copyright", "credits" or "license" for more information.
>> >>> import matplotlib
>> >>> matplotlib.__file__
>> '/home/az/.local/lib/python3.5/site-packages/matplotlib/__init__.py'
>> >>> matplotlib.get_configdir()
>> '/home/az/.config/matplotlib'
>> >>> print(matplotlib.__version__)
>> 2.1.0
>>
>> now if i get the simplest plot :
>>
>> [az at hp src]$ more ./main1.py
>> import matplotlib.pyplot as plt
>> print("imported")
>> plt.plot([1,2,4,1])
>> print("plot is done")
>> plt.show()
>> print("show is done")
>>
>> [az at hp src]$ python3.5 main1.py --verbose-debug
>> $HOME=/home/az
>> matplotlib data path /home/az/.local/lib/python3.5/
>> site-packages/matplotlib/mpl-data
>> loaded rc file /home/az/.local/lib/python3.5/
>> site-packages/matplotlib/mpl-data/matplotlibrc
>> matplotlib version 2.1.0
>> verbose.level debug
>> interactive is False
>> platform is linux
>> loaded modules: ['_locale', 'urllib.request', 'numpy.lib.shape_base',
>> 'numpy.matrixlib', 'ipaddress', 'hashlib', 'collections',
>> 'numpy.lib.financial', 'atexit', 'numpy.lib._iotools',
>> '_frozen_importlib_external', 'numpy.polynomial.chebyshev', 'six',
>> 'unittest.runner', '_sitebuiltins', 'numpy.compat', 'numpy.ma.core',
>> 'abrt_exception_handler3', 'codecs', 'sre_constants', 'calendar',
>> 'matplotlib.cbook', 'contextlib', 'heapq', 'ssl', 'dis', 'binascii',
>> 'posixpath', 'cython_runtime', 'traceback', 'numpy.polynomial.laguerre',
>> '_hashlib', 'zipimport', 'email.utils', '_functools', 'copyreg', 'sys',
>> '_sre', 'matplotlib.cbook._backports', 'numpy.lib.arraysetops', 'random',
>> 'email.parser', 'numpy.fft.helper', '_collections', 'difflib',
>> 'numpy.lib.scimath', 'unittest', '_sysconfigdata', 'numpy', 'site', '_ast',
>> 'json.scanner', 'os', 'http', 'functools', 'unittest.main', '
>> numpy.linalg.info', '_heapq', 'token', 'pathlib', 'tokenize', 'cycler',
>> 'encodings.cp437', 'numpy.polynomial.polynomial',
>> 'numpy.polynomial._polybase', 'numpy.lib.mixins', 'ctypes._endian',
>> 'numpy.lib.arraypad', 'numpy.matrixlib.defmatrix', 'distutils.version',
>> '_signal', 'marshal', 'stat', 'pprint', 'base64', 'logging', 'enum',
>> 'selectors', 'numpy.core', 'json.encoder', 'operator',
>> 'numpy.testing.nosetester', 'matplotlib._version', 'numpy.ctypeslib',
>> 'numpy.add_newdocs', 'unittest.util', '_weakref', 'select',
>> 'importlib._bootstrap_external', 'mtrand', 'importlib._bootstrap',
>> 'matplotlib.rcsetup', 'matplotlib.colors', 'numpy.testing.decorators',
>> 'json', 'numpy.core.machar', 'email.encoders', 'six.moves.urllib',
>> 'matplotlib', 'keyword', 'errno', 'numpy.lib.stride_tricks', '_socket',
>> 'email.quoprimime', 'numpy.ma.extras', 'numbers', 'numpy.version',
>> '_bisect', '_string', 'numpy.lib.arrayterator', 'numpy.core.umath',
>> 'numpy.lib', '_thread', 'time', '_frozen_importlib', 'numpy.core.info',
>> 'numpy.core.multiarray', 'math', '_opcode', 'urllib.parse',
>> 'distutils.sysconfig', 'ntpath', 'argparse', 'types', 'sre_compile',
>> 'glob', '__main__', 'email._encoded_words', 'socket', '_struct', '
>> numpy.fft.info', 'unittest.signals', 'numpy.lib.npyio', 'grp',
>> 'urllib.error', '_io', 'numpy._globals', 'gettext', 'numpy.compat.py3k',
>> 'distutils', 'email.charset', 'ast', 'numpy.lib.function_base', 'uu',
>> 'encodings', 'urllib', 'numpy.lib.twodim_base', 'encodings.latin_1',
>> 'tempfile', 'numpy.lib._version', 'numpy.polynomial.polyutils', 'quopri',
>> 'os.path', '_imp', 'email.base64mime', 'email.message', 'email.header',
>> 'opcode', 'encodings.utf_8', 'reprlib', '_stat', '_warnings',
>> 'email.feedparser', 'numpy.testing.utils', 'numpy.lib.utils',
>> 'genericpath', 'numpy.polynomial.hermite', '_compat_pickle', 'bz2',
>> '_compression', 'subprocess', '_json', 'numpy.lib.nanfunctions', 'inspect',
>> 'sysconfig', '_operator', 'shutil', 'pwd', 'warnings', '_ctypes',
>> '_random', 'email.iterators', '_collections_abc', '__future__', 'email',
>> 'numpy._distributor_init', 'unittest.loader', '_bootlocale',
>> 'numpy.core.records', 'fnmatch', '_posixsubprocess', 'numpy._import_tools',
>> 'numpy.lib.format', '_lzma', 'numpy.core.arrayprint', 'json.decoder',
>> 'signal', 'gzip', 'posix', 'textwrap', 'numpy.fft.fftpack',
>> 'importlib.machinery', 'lzma', 'struct', 'pickle', '_codecs',
>> 'numpy.core.einsumfunc', 'itertools', 'numpy.core.shape_base',
>> 'encodings.aliases', 'numpy.lib.index_tricks', 'numpy.random.info',
>> 'numpy.linalg._umath_linalg', 'matplotlib.fontconfig_pattern',
>> 'six.moves.urllib.request', '_weakrefset', 'distutils.errors', 'io',
>> 'locale', 'email.errors', 'numpy.core.numerictypes',
>> 'numpy.compat._inspect', 'zlib', 'numpy.polynomial.hermite_e',
>> 'numpy.lib.type_check', 'mpl_toolkits', 'numpy.fft.fftpack_lite', 'bisect',
>> 'dateutil', 'numpy.polynomial', 'collections.abc', '_bz2', 'weakref',
>> 'numpy.lib.ufunclike', 'numpy.core.function_base', 'abc', 'six.moves',
>> 'numpy.linalg', 'numpy.polynomial.legendre', 'numpy.core.defchararray',
>> 'numpy.linalg.lapack_lite', 'numpy.core._internal', 'importlib',
>> 'unittest.suite', 'unittest.case', 'numpy.core.memmap', 'email._parseaddr',
>> '_pickle', '_ssl', 'matplotlib.compat.subprocess', 'numpy.random',
>> 'datetime', 'email._policybase', 'sre_parse', 'numpy.linalg.linalg',
>> 'copy', 'numpy.lib._datasource', 'numpy.core._methods', 'linecache',
>> 'matplotlib.compat', 'numpy.testing', 'numpy.__config__',
>> 'unittest.result', 're', 'http.client', 'numpy.lib.info',
>> 'numpy.core.fromnumeric', 'numpy.core.getlimits', 'matplotlib._color_data',
>> 'urllib.response', 'pyparsing', 'numpy.lib.polynomial', 'threading',
>> 'string', 'numpy.core.numeric', 'numpy.ma', 'numpy.fft', 'ctypes',
>> 'numpy.random.mtrand', 'matplotlib.cbook.deprecation', '_datetime',
>> 'builtins']
>> CACHEDIR=/home/az/.cache/matplotlib
>> Using fontManager instance from /home/az/.cache/matplotlib/fontList.json
>> backend TkAgg version 8.6
>> imported
>> ^C
>> Hangs at this point with CPU @ 100%
>>
>> grep -v '#' /home/az/.local/lib/python3.5/site-packages/matplotlib/mpl-d
>> ata/matplotlibrc
>>
>> The only line is :
>> backend      : TkAgg
>>
>>
>> [az at hp src]$ gcc --version
>> gcc (GCC) 6.3.1 20161221 (Red Hat 6.3.1-1)
>>
>> I installed using pip3 into --user directory.
>> but i also remember that i used dnf to get tkInnter installed:
>> rpm -qa | grep tkin
>> python3-tkinter-3.5.3-6.fc24.x86_64
>> tkinter-2.7.13-2.fc24.x86_64
>> tix-1:8.4.3-17.fc24.x86_64
>> if i were to compare "pip3 list" between system (root) and the user (az):
>> diff -u /tmp/root_pip /tmp/usr_pip
>> --- /tmp/root_pip    2017-11-04 15:26:09.612643559 -0400
>> +++ /tmp/usr_pip    2017-11-04 15:25:52.396473226 -0400
>> @@ -1,39 +1,65 @@
>>  astroid (1.4.5)
>>  beautifulsoup4 (4.6.0)
>> +bleach (2.1)
>>  blivet (1.20.3)
>>  chardet (2.2.1)
>>  coverage (4.4.1)
>>  cssselect (0.9.1)
>>  cupshelpers (1.0)
>> +cx-Oracle (6.0.2)
>>  cycler (0.10.0)
>>  decorator (4.0.11)
>>  distro (1.0.2)
>>  dnf-langpacks (0.15.1)
>> +entrypoints (0.2.3)
>>  fros (1.1)
>> -html5lib (0.999)
>> +html5lib (1.0b10)
>>  humanize (0.5.1)
>>  ib-insync (0.8.5)
>> +ibapi (9.73.2)
>>  iniparse (0.4)
>>  initial-setup (0.3.40)
>>  IPy (0.81)
>> +ipykernel (4.6.1)
>> +ipython (6.2.0)
>> +ipython-genutils (0.2.0)
>>  ipywidgets (7.0.0)
>>  isc (1.0)
>>  javapackages (4.6.0)
>> +jedi (0.11.0)
>> +Jinja2 (2.9.6)
>> +jsonschema (2.6.0)
>>  jupyter (1.0.0)
>> +jupyter-client (5.1.0)
>> +jupyter-console (5.2.0)
>> +jupyter-core (4.3.0)
>>  langtable (0.0.35)
>>  lazy-object-proxy (1.2.1)
>>  lxml (3.7.2)
>> +MarkupSafe (1.0)
>> +matplotlib (2.1.0)
>> +mistune (0.7.4)
>> +nbconvert (5.3.1)
>> +nbformat (4.4.0)
>> +notebook (5.1.0)
>>  ntplib (0.3.3)
>>  numpy (1.13.3)
>>  ordered-set (2.0.0)
>>  pandas (0.20.3)
>> +pandocfilters (1.4.2)
>> +parso (0.1.0)
>> +pexpect (4.2.1)
>> +pickleshare (0.7.4)
>>  pid (2.0.1)
>>  Pillow (3.2.0)
>>  pip (9.0.1)
>> +prompt-toolkit (1.0.15)
>> +ptyprocess (0.5.2)
>>  pwquality (1.3.0)
>>  pycups (1.9.72)
>>  pycurl (7.43.0)
>>  pyenchant (1.6.8)
>> +Pygments (2.2.0)
>>  pygobject (3.20.1)
>>  pygpgme (0.3)
>>  pyinotify (0.9.6)
>> @@ -42,6 +68,7 @@
>>  pylint (1.5.6)
>>  pyparsing (2.2.0)
>>  pyparted (3.10.7)
>> +PyQt5 (5.9)
>>  PySocks (1.5.6)
>>  python-augeas (0.5.0)
>>  python-dateutil (2.6.1)
>> @@ -50,6 +77,9 @@
>>  pytz (2017.2)
>>  pyudev (0.21.0)
>>  pyxdg (0.25)
>> +pyzmq (16.0.2)
>> +qtconsole (4.3.1)
>> +Quamash (0.5.5)
>>  requests (2.10.0)
>>  requests-file (1.4)
>>  requests-ftp (0.3.1)
>> @@ -60,11 +90,21 @@
>>  sepolicy (1.1)
>>  setroubleshoot (1.1)
>>  setuptools (20.1.1)
>> +simplegeneric (0.8.1)
>> +sip (4.19.3)
>>  six (1.11.0)
>>  slip (0.6.4)
>>  slip.dbus (0.6.4)
>>  sos (3.2)
>>  SSSDConfig (1.15.3)
>>  systemd-python (232)
>> +terminado (0.6)
>> +testpath (0.3.1)
>> +tornado (4.5.2)
>> +traitlets (4.3.2)
>> +tws-async (0.5.5)
>>  urllib3 (1.15.1)
>> +wcwidth (0.1.7)
>> +webencodings (0.5.1)
>> +widgetsnbextension (3.0.3)
>>  wrapt (1.10.10)
>>
>>
>> I just removed html5lib from system(root) , but tha made no difference to
>> the plotting..
>>
>>
>>
>>
>>
>> On Sat, Nov 4, 2017 at 11:09 AM, Andrew Z <formisc at gmail.com> wrote:
>>
>>> hello,
>>>  the issue i'm experiencing is local to my laptop ( the other machines i
>>> have run examples just fine).
>>> I described it here https://www.mail-archive.com/p
>>> ython-list at python.org/msg432343.html in details.
>>> i searched around, but none of the proposed workarounds helped.
>>>
>>> Is there a  way to enable some-kind of debugging or verbose output to
>>> see what exactly is happening behind the scene?
>>>
>>> Thank you.
>>> AZ
>>>
>>>
>>
>> _______________________________________________
>> 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/20171106/4ae0a070/attachment-0001.html>


More information about the Matplotlib-users mailing list