# Error when using PyPlot and Gtk package

**URL:** https://discourse.julialang.org/t/error-when-using-pyplot-and-gtk-package/34559
**Category:** General Usage
**Tags:** package
**Created:** [February 13, 2020, 5:55am UTC](https://discourse.julialang.org/t/error-when-using-pyplot-and-gtk-package/34559 "2020-02-13T05:55:09Z")
**Posts on this page:** 6
**Page:** 1

<div class="post-metadata">

### Author: ![henry2004y](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/henry2004y/32/9284_2.png) [@henry2004y](https://discourse.julialang.org/u/henry2004y)
#### Post date: [February 13, 2020, 5:55am UTC](https://discourse.julialang.org/t/error-when-using-pyplot-and-gtk-package/34559/1 "2020-02-13T05:55:09Z")

</div>

Hi,

I am getting errors when using PyPlot and Gtk together:

```julia
julia> using PyPlot, Gtk
ERROR: InitError: could not load library "/Users/hyzhou/.julia/artifacts/c6f53b0adfb48f611ad41b73461d9419117d3503/lib/libfontconfig.1.dylib"
dlopen(/Users/hyzhou/.julia/artifacts/c6f53b0adfb48f611ad41b73461d9419117d3503/lib/libfontconfig.1.dylib, 1): Library not loaded: @rpath/libfreetype.6.dylib
  Referenced from: /Users/hyzhou/.julia/artifacts/c6f53b0adfb48f611ad41b73461d9419117d3503/lib/libfontconfig.1.dylib
  Reason: Incompatible library version: libfontconfig.1.dylib requires version 24.0.0 or later, but libfreetype.6.dylib provides version 23.0.0
Stacktrace:
 [1] #dlopen#3(::Bool, ::typeof(Libdl.dlopen), ::String, ::UInt32) at /Users/julia/buildbot/worker/package_macos64/build/usr/share/julia/stdlib/v1.3/Libdl/src/Libdl.jl:109
 [2] dlopen at /Users/julia/buildbot/worker/package_macos64/build/usr/share/julia/stdlib/v1.3/Libdl/src/Libdl.jl:109 [inlined] (repeats 2 times)
 [3] __init__ () at /Users/hyzhou/.julia/packages/Fontconfig_jll/bvmOQ/src/wrappers/x86_64-apple-darwin14.jl:358
 [4] _include_from_serialized(::String, ::Array{Any,1}) at ./loading.jl:692
 [5] _require_search_from_serialized(::Base.PkgId, ::String) at ./loading.jl:776
 [6] _tryrequire_from_serialized(::Base.PkgId, ::UInt64, ::String) at ./loading.jl:707
 [7] _require_search_from_serialized(::Base.PkgId, ::String) at ./loading.jl:765
 [8] _require(::Base.PkgId) at ./loading.jl:1001
 [9] require(::Base.PkgId) at ./loading.jl:922
 [10] require(::Module, ::Symbol) at ./loading.jl:917
during initialization of module Fontconfig_jll

```

However, if I switch the import order,

```julia
julia> using Gtk, PyPlot
[ Info: Installing pyqt package to avoid buggy tkagg backend.
┌ Warning: No working GUI backend found for matplotlib
└ @ PyPlot ~/.julia/packages/PyPlot/4wzW1/src/init.jl:165
ERROR: InitError: PyError (PyImport_ImportModule

The Python package matplotlib.pyplot could not be found by pyimport. Usually this means
that you did not install matplotlib.pyplot in the Python version being used by PyCall.

PyCall is currently configured to use the Julia-specific Python distribution
installed by the Conda.jl package. To install the matplotlib.pyplot module, you can
use `pyimport_conda("matplotlib.pyplot", PKG)`, where PKG is the Anaconda
package the contains the module matplotlib.pyplot, or alternatively you can use the
Conda package directly (via `using Conda` followed by `Conda.add` etcetera).

Alternatively, if you want to use a different Python distribution on your
system, such as a system-wide Python (as opposed to the Julia-specific Python),
you can re-configure PyCall with that Python. As explained in the PyCall
documentation, set ENV["PYTHON"] to the path/name of the python executable
you want to use, run Pkg.build("PyCall"), and re-launch Julia.

) <class 'ImportError'>
ImportError('dlopen(/Users/hyzhou/.julia/conda/3/lib/python3.7/site-packages/matplotlib/_png.cpython-37m-darwin.so, 2): Library not loaded: @rpath/libpng16.16.dylib\n Referenced from: /Users/hyzhou/.julia/conda/3/lib/python3.7/site-packages/matplotlib/_png.cpython-37m-darwin.so\n Reason: Incompatible library version: _png.cpython-37m-darwin.so requires version 52.0.0 or later, but libpng16.16.37.0.dylib provides version 16.0.0')
  File "/Users/hyzhou/.julia/conda/3/lib/python3.7/site-packages/matplotlib/pyplot.py", line 32, in <module>
    import matplotlib.colorbar
  File "/Users/hyzhou/.julia/conda/3/lib/python3.7/site-packages/matplotlib/colorbar.py", line 32, in <module>
    import matplotlib.contour as contour
  File "/Users/hyzhou/.julia/conda/3/lib/python3.7/site-packages/matplotlib/contour.py", line 19, in <module>
    import matplotlib.text as text
  File "/Users/hyzhou/.julia/conda/3/lib/python3.7/site-packages/matplotlib/text.py", line 18, in <module>
    from .textpath import TextPath # Unused, but imported by others.
  File "/Users/hyzhou/.julia/conda/3/lib/python3.7/site-packages/matplotlib/textpath.py", line 12, in <module>
    from matplotlib.mathtext import MathTextParser
  File "/Users/hyzhou/.julia/conda/3/lib/python3.7/site-packages/matplotlib/mathtext.py", line 34, in <module>
    from matplotlib import _png, cbook, colors as mcolors, get_data_path, rcParams

Stacktrace:
 [1] pyimport(::String) at /Users/hyzhou/.julia/packages/PyCall/kAhnQ/src/PyCall.jl:536
 [2] __init__ () at /Users/hyzhou/.julia/packages/PyPlot/4wzW1/src/init.jl:195
 [3] _include_from_serialized(::String, ::Array{Any,1}) at ./loading.jl:692
 [4] _require_search_from_serialized(::Base.PkgId, ::String) at ./loading.jl:776
 [5] _require(::Base.PkgId) at ./loading.jl:1001
 [6] require(::Base.PkgId) at ./loading.jl:922
 [7] require(::Module, ::Symbol) at ./loading.jl:917
during initialization of module PyPlot

```

I am wondering what is causing this behind the scene.

---

<div class="post-metadata">

### Author: ![ctkelley](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/ctkelley/32/10684_2.png) [@ctkelley](https://discourse.julialang.org/u/ctkelley)
#### Post date: [March 16, 2020, 7:35pm UTC](https://discourse.julialang.org/t/error-when-using-pyplot-and-gtk-package/34559/2 "2020-03-16T19:35:16Z")

</div>

Did you find a solution? I just started having this problem today. All was well a couple months ago. Now when I try “using module\_that\_needs\_matplotlib” I get this …

> Info: Installing matplotlib via the Conda matplotlib package…  
> [ Info: Running `conda install -y matplotlib` in root environment  
> Collecting package metadata (current\_repodata.json): done  
> Solving environment: done  
> #all requested packages already installed.

Followed by this

> ERROR: LoadError: InitError: PyError (PyImport\_ImportModule  
> The Python package matplotlib could not be found by pyimport. Usually this means  
> that you did not install matplotlib in the Python version being used by PyCall.

I don’t seem to be the only one having this problem, but am having trouble understanding the solutions.

---

<div class="post-metadata">

### Author: ![henry2004y](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/henry2004y/32/9284_2.png) [@henry2004y](https://discourse.julialang.org/u/henry2004y)
#### Post date: [March 16, 2020, 9:15pm UTC](https://discourse.julialang.org/t/error-when-using-pyplot-and-gtk-package/34559/3 "2020-03-16T21:15:07Z")

</div>

Please see this [issue](https://github.com/JuliaGraphics/Gtk.jl/issues/493). I didn’t continue from that point on, but changing the PyPlot backend should work:  
`ENV["MPLBACKEND"]="tkagg"`

---

<div class="post-metadata">

### Author: ![ctkelley](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/ctkelley/32/10684_2.png) [@ctkelley](https://discourse.julialang.org/u/ctkelley)
#### Post date: [March 16, 2020, 9:21pm UTC](https://discourse.julialang.org/t/error-when-using-pyplot-and-gtk-package/34559/4 "2020-03-16T21:21:55Z")

</div>

Thanks. how do I do that?

---

<div class="post-metadata">

### Author: ![ctkelley](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/ctkelley/32/10684_2.png) [@ctkelley](https://discourse.julialang.org/u/ctkelley)
#### Post date: [March 16, 2020, 9:59pm UTC](https://discourse.julialang.org/t/error-when-using-pyplot-and-gtk-package/34559/5 "2020-03-16T21:59:34Z")

</div>

I tried that, but no joy. Now I get a different error

> [ Info: Running `conda install -y matplotlib` in root environment

# \>\>\>\>\>\>\>\>\>\>\>\>\>\>\>\>\>\>\>\>\>\> ERROR REPORT \<\<\<\<\<\<\<\<\<\<\<\<\<\<\<\<\<\<\<\<\<\<

```
Traceback (most recent call last):
  File "/Users/ctk/.julia/conda/3/lib/python3.7/site-packages/conda/exceptions.py", line 1079, in __call__
    return func(*args, **kwargs)
  File "/Users/ctk/.julia/conda/3/lib/python3.7/site-packages/conda/cli/main.py", line 84, in _main
    exit_code = do_call(args, p)
  File "/Users/ctk/.julia/conda/3/lib/python3.7/site-packages/conda/cli/conda_argparse.py", line 82, in do_call
    return getattr(module, func_name)(args, parser)
  File "/Users/ctk/.julia/conda/3/lib/python3.7/site-packages/conda/cli/main_install.py", line 20, in execute
    install(args, parser, 'install')
  File "/Users/ctk/.julia/conda/3/lib/python3.7/site-packages/conda/cli/install.py", line 116, in install
    if context.use_only_tar_bz2:
  File "/Users/ctk/.julia/conda/3/lib/python3.7/site-packages/conda/base/context.py", line 710, in use_only_tar_bz2
    import conda_package_handling.api
ModuleNotFoundError: No module named 'conda_package_handling.api'

```

Something seems badly broken.

---

<div class="post-metadata">

### Author: ![ctkelley](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/ctkelley/32/10684_2.png) [@ctkelley](https://discourse.julialang.org/u/ctkelley)
#### Post date: [March 17, 2020, 12:14am UTC](https://discourse.julialang.org/t/error-when-using-pyplot-and-gtk-package/34559/6 "2020-03-17T00:14:15Z")

</div>

Spooky. There was a post in a related thread suggesting to

> rm -rf .julia

and start over. That seemed to work for me. I have no idea why.
