PyPlot.jl icon indicating copy to clipboard operation
PyPlot.jl copied to clipboard

Mac M1, no gui

Open francescoalemanno opened this issue 3 years ago • 7 comments
trafficstars

192 ~ % julia              
               _
   _       _ _(_)_     |  Documentation: https://docs.julialang.org
  (_)     | (_) (_)    |
   _ _   _| |_  __ _   |  Type "?" for help, "]?" for Pkg help.
  | | | | | | |/ _` |  |
  | | |_| | | | (_| |  |  Version 1.7.0 (2021-11-30)
 _/ |\__'_|_|_|\__'_|  |  Official https://julialang.org/ release
|__/                   |

julia> using PyPlot
[ Info: Installing pyqt package to avoid buggy tkagg backend.
[ Info: Installing PyQt5 via the Conda pyqt package...
[ Info: Running `conda install -y pyqt` in root environment
Collecting package metadata (current_repodata.json): done
Solving environment: failed with initial frozen solve. Retrying with flexible solve.
Collecting package metadata (repodata.json): done
Solving environment: failed with initial frozen solve. Retrying with flexible solve.

PackagesNotFoundError: The following packages are not available from current channels:

  - pyqt

Current channels:

  - https://conda.anaconda.org/conda-forge/osx-arm64
  - https://conda.anaconda.org/conda-forge/noarch

To search for alternate channels that may provide the conda package you're
looking for, navigate to

    https://anaconda.org

and use the search bar at the top of the page.



julia> versioninfo()
Julia Version 1.7.0
Commit 3bf9d17731 (2021-11-30 12:12 UTC)
Platform Info:
  OS: macOS (arm64-apple-darwin21.1.0)
  CPU: Apple M1
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-12.0.1 (ORCJIT, cyclone)

Any known workarounds?

francescoalemanno avatar Dec 06 '21 17:12 francescoalemanno

I had the same problem. Was playing around with it the other day and came up with something seems to work for the time being. Just thought I would post it here for reference.

using PyCall    
pygui(:tk)
using PyPlot

... or add the following line to ~/.matplotlib/matplotlibrc

backend : TkAgg

Note: I get a warning about Tk being buggy but I haven't run into any problems yet.

julia> versioninfo()
Julia Version 1.8.0-DEV.1268
Commit 955d427135 (2022-01-10 15:37 UTC)
Platform Info:
  OS: macOS (arm64-apple-darwin21.3.0)
  CPU: Apple M1 Max
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-13.0.0 (ORCJIT, cyclone)
Environment:
  JULIA_NUM_THREADS = 5

EthanAnderes avatar Jan 10 '22 18:01 EthanAnderes

Yes I have the same problem on my new macbook pro.

I was able to get pyqt working with PyPlots by installing pyqt via a special Conda channel:

Conda.add("pyqt", channel="andfoy")

Also it seems that conda channel robostack-experimental has pyqt for arm64.... just wish I knew which channel was better or that I trusted these rare "one off" channels.

Why hasn't Conda-forge added arm64 version of pyqt?

damonturney avatar Jan 26 '22 18:01 damonturney

Works fine for me on M1; maybe this was a recent problem with Conda?

You can always try a different backend, e.g. set ENV["MPLBACKEND"]="tkagg" before loading PyPlot.

stevengj avatar Jan 26 '22 19:01 stevengj

Steve how did you install PyQt5? With Julia and PyPlots, the default conda channels don't even have a working version of pyqt for arm64 chips.... so maybe you had added other conda channels or installed PyQt5 via other methods beyond the Julia Conda package manager?

damonturney avatar Jan 26 '22 20:01 damonturney

I just let Conda install it with the default installer, I didn't do anything special:

julia> Conda.list()
[ Info: Running `conda list` in root environment
# packages in environment at /Users/stevenj/.julia/conda/3:
#
# Name                    Version                   Build  Channel
adwaita-icon-theme        40.1.1               hca03da5_1  
appnope                   0.1.2           py38hca03da5_1001  
argon2-cffi               20.1.0           py38h1a28f6b_2  
...
pyqt                      5.15.2           py38he8f2410_0  
pyqt5-sip                 4.19.25                  pypi_0    pypi
pyqtchart                 5.15.2                   pypi_0    pypi
...

I'm just using the default channels:

julia> run(Conda._set_conda_env(`$(Conda.conda) config --show channels`))
channels:
  - defaults

stevengj avatar Jan 26 '22 22:01 stevengj

Ok, but we all need to see which conda channel your pyqt came from. pyqt doesn't seem to be available with the normal conda channels.

damonturney avatar Jan 26 '22 22:01 damonturney

PyQt for M1 macs is now available from conda-forge (and also from the andfoy channel, which is what I was using earlier this year before the conda-forge build became available)

conda install pyqt -c conda-forge

Perhaps this means this issue can now be closed?

GenevieveBuckley avatar Jul 27 '22 12:07 GenevieveBuckley