JuliaPy / PyPlot.jl

Plotting for Julia based on matplotlib.pyplot
https://github.com/JuliaPy/PyPlot.jl
MIT License
474 stars 87 forks source link

PyPlot crashes Julia 1.4.1 #488

Open ChrisNabold opened 4 years ago

ChrisNabold commented 4 years ago

I use Julia 1.4.1 on Win 10 64 bit. I installed PyPlot V2.9.0 after .. using PyPlot
x = range(0; stop=2pi, length=1000); y = sin.(3 x + 4 cos.(2 x)); plot(x, y, color="red", linewidth=2.0, linestyle="--") --> Julia crashes and Julia windows disappears

Indigo2233 commented 3 years ago

Me too on manjaro linux:

julia> using PyPlot

julia> plot([1, 2])
This application failed to start because it could not find or load the Qt platform plugin "xcb"
in "".

Reinstalling the application may fix this problem.

signal (6): 已放弃
in expression starting at REPL[2]:1
gsignal at /usr/lib/libc.so.6 (unknown line)
abort at /usr/lib/libc.so.6 (unknown line)
_ZNK14QMessageLogger5fatalEPKcz at /opt/anaconda/lib/python3.8/site-packages/PyQt5/../../../libQt5Core.so.5 (unknown line)
_ZN22QGuiApplicationPrivate25createPlatformIntegrationEv at /opt/anaconda/lib/python3.8/site-packages/PyQt5/../../../libQt5Gui.so.5 (unknown line)
_ZN22QGuiApplicationPrivate21createEventDispatcherEv at /opt/anaconda/lib/python3.8/site-packages/PyQt5/../../../libQt5Gui.so.5 (unknown line)
_ZN23QCoreApplicationPrivate4initEv at /opt/anaconda/lib/python3.8/site-packages/PyQt5/../../../libQt5Core.so.5 (unknown line)
_ZN22QGuiApplicationPrivate4initEv at /opt/anaconda/lib/python3.8/site-packages/PyQt5/../../../libQt5Gui.so.5 (unknown line)
_ZN19QApplicationPrivate4initEv at /opt/anaconda/lib/python3.8/site-packages/PyQt5/../../../libQt5Widgets.so.5 (unknown line)
_ZN15sipQApplicationC1ERiPPci at /opt/anaconda/lib/python3.8/site-packages/PyQt5/QtWidgets.so (unknown line)
init_type_QApplication at /opt/anaconda/lib/python3.8/site-packages/PyQt5/QtWidgets.so (unknown line)
unknown function (ip: 0x7f455c885873)
type_call.lto_priv.242 at /opt/anaconda/lib/libpython3.8.so.1.0 (unknown line)
_PyObject_MakeTpCall at /opt/anaconda/lib/libpython3.8.so.1.0 (unknown line)
call_function at /opt/anaconda/lib/libpython3.8.so.1.0 (unknown line)
_PyEval_EvalFrameDefault at /opt/anaconda/lib/libpython3.8.so.1.0 (unknown line)
function_code_fastcall at /opt/anaconda/lib/libpython3.8.so.1.0 (unknown line)
call_function at /opt/anaconda/lib/libpython3.8.so.1.0 (unknown line)
_PyEval_EvalFrameDefault at /opt/anaconda/lib/libpython3.8.so.1.0 (unknown line)
_PyEval_EvalCodeWithName at /opt/anaconda/lib/libpython3.8.so.1.0 (unknown line)
_PyFunction_Vectorcall at /opt/anaconda/lib/libpython3.8.so.1.0 (unknown line)
method_vectorcall at /opt/anaconda/lib/libpython3.8.so.1.0 (unknown line)
call_function at /opt/anaconda/lib/libpython3.8.so.1.0 (unknown line)
_PyEval_EvalFrameDefault at /opt/anaconda/lib/libpython3.8.so.1.0 (unknown line)
_PyEval_EvalCodeWithName at /opt/anaconda/lib/libpython3.8.so.1.0 (unknown line)
_PyFunction_Vectorcall at /opt/anaconda/lib/libpython3.8.so.1.0 (unknown line)
_PyObject_FastCallDict at /opt/anaconda/lib/libpython3.8.so.1.0 (unknown line)
_PyObject_Call_Prepend at /opt/anaconda/lib/libpython3.8.so.1.0 (unknown line)
slot_tp_init at /opt/anaconda/lib/libpython3.8.so.1.0 (unknown line)
type_call.lto_priv.242 at /opt/anaconda/lib/libpython3.8.so.1.0 (unknown line)
_PyObject_MakeTpCall at /opt/anaconda/lib/libpython3.8.so.1.0 (unknown line)
call_function at /opt/anaconda/lib/libpython3.8.so.1.0 (unknown line)
_PyEval_EvalFrameDefault at /opt/anaconda/lib/libpython3.8.so.1.0 (unknown line)
function_code_fastcall at /opt/anaconda/lib/libpython3.8.so.1.0 (unknown line)
method_vectorcall at /opt/anaconda/lib/libpython3.8.so.1.0 (unknown line)
call_function at /opt/anaconda/lib/libpython3.8.so.1.0 (unknown line)
_PyEval_EvalFrameDefault at /opt/anaconda/lib/libpython3.8.so.1.0 (unknown line)
_PyEval_EvalCodeWithName at /opt/anaconda/lib/libpython3.8.so.1.0 (unknown line)
_PyFunction_Vectorcall at /opt/anaconda/lib/libpython3.8.so.1.0 (unknown line)
method_vectorcall at /opt/anaconda/lib/libpython3.8.so.1.0 (unknown line)
PyVectorcall_Call at /opt/anaconda/lib/libpython3.8.so.1.0 (unknown line)
_PyEval_EvalFrameDefault at /opt/anaconda/lib/libpython3.8.so.1.0 (unknown line)
_PyEval_EvalCodeWithName at /opt/anaconda/lib/libpython3.8.so.1.0 (unknown line)
_PyFunction_Vectorcall at /opt/anaconda/lib/libpython3.8.so.1.0 (unknown line)
PyVectorcall_Call at /opt/anaconda/lib/libpython3.8.so.1.0 (unknown line)
macro expansion at /home/suyao/.julia/packages/PyCall/zqDXB/src/exception.jl:93 [inlined]
#110 at /home/suyao/.julia/packages/PyCall/zqDXB/src/pyfncall.jl:43 [inlined]
disable_sigint at ./c.jl:446 [inlined]
__pycall! at /home/suyao/.julia/packages/PyCall/zqDXB/src/pyfncall.jl:42 [inlined]
_pycall! at /home/suyao/.julia/packages/PyCall/zqDXB/src/pyfncall.jl:29
_pycall! at /home/suyao/.julia/packages/PyCall/zqDXB/src/pyfncall.jl:11 [inlined]
#pycall#116 at /home/suyao/.julia/packages/PyCall/zqDXB/src/pyfncall.jl:83 [inlined]
pycall at /home/suyao/.julia/packages/PyCall/zqDXB/src/pyfncall.jl:83 [inlined]
#figure#7 at /home/suyao/.julia/packages/PyPlot/XHEG0/src/PyPlot.jl:147
figure at /home/suyao/.julia/packages/PyPlot/XHEG0/src/PyPlot.jl:146
unknown function (ip: 0x7f4564094d2c)
_jl_invoke at /buildworker/worker/package_linux64/build/src/gf.c:2231 [inlined]
jl_apply_generic at /buildworker/worker/package_linux64/build/src/gf.c:2398
jl_apply at /buildworker/worker/package_linux64/build/src/julia.h:1690 [inlined]
do_apply at /buildworker/worker/package_linux64/build/src/builtins.c:655
jl_f__apply_latest at /buildworker/worker/package_linux64/build/src/builtins.c:705
#invokelatest#1 at ./essentials.jl:710 [inlined]
invokelatest at ./essentials.jl:709
_jl_invoke at /buildworker/worker/package_linux64/build/src/gf.c:2214 [inlined]
jl_apply_generic at /buildworker/worker/package_linux64/build/src/gf.c:2398
jl_apply at /buildworker/worker/package_linux64/build/src/julia.h:1690 [inlined]
do_apply at /buildworker/worker/package_linux64/build/src/builtins.c:655
_pyjlwrap_call at /home/suyao/.julia/packages/PyCall/zqDXB/src/callback.jl:28
unknown function (ip: 0x7f45640931c3)
_jl_invoke at /buildworker/worker/package_linux64/build/src/gf.c:2214 [inlined]
jl_apply_generic at /buildworker/worker/package_linux64/build/src/gf.c:2398
pyjlwrap_call at /home/suyao/.julia/packages/PyCall/zqDXB/src/callback.jl:49
unknown function (ip: 0x7f4564065d81)
_PyObject_MakeTpCall at /opt/anaconda/lib/libpython3.8.so.1.0 (unknown line)
call_function at /opt/anaconda/lib/libpython3.8.so.1.0 (unknown line)
_PyEval_EvalFrameDefault at /opt/anaconda/lib/libpython3.8.so.1.0 (unknown line)
function_code_fastcall at /opt/anaconda/lib/libpython3.8.so.1.0 (unknown line)
PyVectorcall_Call at /opt/anaconda/lib/libpython3.8.so.1.0 (unknown line)
macro expansion at /home/suyao/.julia/packages/PyCall/zqDXB/src/exception.jl:93 [inlined]
#110 at /home/suyao/.julia/packages/PyCall/zqDXB/src/pyfncall.jl:43 [inlined]
disable_sigint at ./c.jl:446 [inlined]
__pycall! at /home/suyao/.julia/packages/PyCall/zqDXB/src/pyfncall.jl:42 [inlined]
_pycall! at /home/suyao/.julia/packages/PyCall/zqDXB/src/pyfncall.jl:29
_pycall! at /home/suyao/.julia/packages/PyCall/zqDXB/src/pyfncall.jl:11 [inlined]
#pycall#116 at /home/suyao/.julia/packages/PyCall/zqDXB/src/pyfncall.jl:83 [inlined]
pycall at /home/suyao/.julia/packages/PyCall/zqDXB/src/pyfncall.jl:83 [inlined]
gcf at /home/suyao/.julia/packages/PyPlot/XHEG0/src/PyPlot.jl:154
unknown function (ip: 0x7f4564094d0c)
_jl_invoke at /buildworker/worker/package_linux64/build/src/gf.c:2231 [inlined]
jl_apply_generic at /buildworker/worker/package_linux64/build/src/gf.c:2398
jl_apply at /buildworker/worker/package_linux64/build/src/julia.h:1690 [inlined]
do_apply at /buildworker/worker/package_linux64/build/src/builtins.c:655
jl_f__apply_latest at /buildworker/worker/package_linux64/build/src/builtins.c:705
#invokelatest#1 at ./essentials.jl:710 [inlined]
invokelatest at ./essentials.jl:709
_jl_invoke at /buildworker/worker/package_linux64/build/src/gf.c:2231 [inlined]
jl_apply_generic at /buildworker/worker/package_linux64/build/src/gf.c:2398
jl_apply at /buildworker/worker/package_linux64/build/src/julia.h:1690 [inlined]
do_apply at /buildworker/worker/package_linux64/build/src/builtins.c:655
_pyjlwrap_call at /home/suyao/.julia/packages/PyCall/zqDXB/src/callback.jl:28
unknown function (ip: 0x7f45640931c3)
_jl_invoke at /buildworker/worker/package_linux64/build/src/gf.c:2231 [inlined]
jl_apply_generic at /buildworker/worker/package_linux64/build/src/gf.c:2398
pyjlwrap_call at /home/suyao/.julia/packages/PyCall/zqDXB/src/callback.jl:49
unknown function (ip: 0x7f4564065d81)
_PyObject_MakeTpCall at /opt/anaconda/lib/libpython3.8.so.1.0 (unknown line)
call_function at /opt/anaconda/lib/libpython3.8.so.1.0 (unknown line)
_PyEval_EvalFrameDefault at /opt/anaconda/lib/libpython3.8.so.1.0 (unknown line)
_PyEval_EvalCodeWithName at /opt/anaconda/lib/libpython3.8.so.1.0 (unknown line)
_PyFunction_Vectorcall at /opt/anaconda/lib/libpython3.8.so.1.0 (unknown line)
call_function at /opt/anaconda/lib/libpython3.8.so.1.0 (unknown line)
_PyEval_EvalFrameDefault at /opt/anaconda/lib/libpython3.8.so.1.0 (unknown line)
_PyEval_EvalCodeWithName at /opt/anaconda/lib/libpython3.8.so.1.0 (unknown line)
_PyFunction_Vectorcall at /opt/anaconda/lib/libpython3.8.so.1.0 (unknown line)
PyVectorcall_Call at /opt/anaconda/lib/libpython3.8.so.1.0 (unknown line)
macro expansion at /home/suyao/.julia/packages/PyCall/zqDXB/src/exception.jl:93 [inlined]
#110 at /home/suyao/.julia/packages/PyCall/zqDXB/src/pyfncall.jl:43 [inlined]
disable_sigint at ./c.jl:446 [inlined]
__pycall! at /home/suyao/.julia/packages/PyCall/zqDXB/src/pyfncall.jl:42 [inlined]
_pycall! at /home/suyao/.julia/packages/PyCall/zqDXB/src/pyfncall.jl:29
_pycall! at /home/suyao/.julia/packages/PyCall/zqDXB/src/pyfncall.jl:11 [inlined]
#pycall#116 at /home/suyao/.julia/packages/PyCall/zqDXB/src/pyfncall.jl:83 [inlined]
pycall at /home/suyao/.julia/packages/PyCall/zqDXB/src/pyfncall.jl:83 [inlined]
#plot#85 at /home/suyao/.julia/packages/PyPlot/XHEG0/src/PyPlot.jl:177
plot at /home/suyao/.julia/packages/PyPlot/XHEG0/src/PyPlot.jl:174
_jl_invoke at /buildworker/worker/package_linux64/build/src/gf.c:2231 [inlined]
jl_apply_generic at /buildworker/worker/package_linux64/build/src/gf.c:2398
jl_apply at /buildworker/worker/package_linux64/build/src/julia.h:1690 [inlined]
do_call at /buildworker/worker/package_linux64/build/src/interpreter.c:117
eval_value at /buildworker/worker/package_linux64/build/src/interpreter.c:206
eval_stmt_value at /buildworker/worker/package_linux64/build/src/interpreter.c:157 [inlined]
eval_body at /buildworker/worker/package_linux64/build/src/interpreter.c:566
jl_interpret_toplevel_thunk at /buildworker/worker/package_linux64/build/src/interpreter.c:660
jl_toplevel_eval_flex at /buildworker/worker/package_linux64/build/src/toplevel.c:840
jl_toplevel_eval_flex at /buildworker/worker/package_linux64/build/src/toplevel.c:790
jl_toplevel_eval_in at /buildworker/worker/package_linux64/build/src/toplevel.c:883
eval at ./boot.jl:331
_jl_invoke at /buildworker/worker/package_linux64/build/src/gf.c:2214 [inlined]
jl_apply_generic at /buildworker/worker/package_linux64/build/src/gf.c:2398
eval_user_input at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.5/REPL/src/REPL.jl:134
repl_backend_loop at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.5/REPL/src/REPL.jl:195
start_repl_backend at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.5/REPL/src/REPL.jl:180
#run_repl#37 at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.5/REPL/src/REPL.jl:292
run_repl at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.5/REPL/src/REPL.jl:288
_jl_invoke at /buildworker/worker/package_linux64/build/src/gf.c:2231 [inlined]
jl_apply_generic at /buildworker/worker/package_linux64/build/src/gf.c:2398
#807 at ./client.jl:399
jfptr_YY.807_64838.clone_1 at /home/suyao/IDE/julia-1.5.2/lib/julia/sys.so (unknown line)
_jl_invoke at /buildworker/worker/package_linux64/build/src/gf.c:2214 [inlined]
jl_apply_generic at /buildworker/worker/package_linux64/build/src/gf.c:2398
jl_apply at /buildworker/worker/package_linux64/build/src/julia.h:1690 [inlined]
do_apply at /buildworker/worker/package_linux64/build/src/builtins.c:655
jl_f__apply_latest at /buildworker/worker/package_linux64/build/src/builtins.c:705
#invokelatest#1 at ./essentials.jl:710 [inlined]
invokelatest at ./essentials.jl:709 [inlined]
run_main_repl at ./client.jl:383
exec_options at ./client.jl:313
_start at ./client.jl:506
jfptr__start_60376.clone_1 at /home/suyao/IDE/julia-1.5.2/lib/julia/sys.so (unknown line)
_jl_invoke at /buildworker/worker/package_linux64/build/src/gf.c:2214 [inlined]
jl_apply_generic at /buildworker/worker/package_linux64/build/src/gf.c:2398
unknown function (ip: 0x401931)
unknown function (ip: 0x401533)
__libc_start_main at /usr/lib/libc.so.6 (unknown line)
unknown function (ip: 0x4015d4)
Allocations: 12657866 (Pool: 12654440; Big: 3426); GC: 13
[1]    77778 abort (core dumped)  julia

And

julia> versioninfo()
Julia Version 1.5.2
Commit 539f3ce943 (2020-09-23 23:17 UTC)
Platform Info:
  OS: Linux (x86_64-pc-linux-gnu)
  CPU: Intel(R) Core(TM) i5-8250U CPU @ 1.60GHz
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-9.0.1 (ORCJIT, skylake)
Environment:
  JULIA_NUM_THREADS = 4
  JULIA_PKG_SERVER = https://mirrors.sjtug.sjtu.edu.cn/julia
Sirplentifus commented 8 months ago

I had the exact same error, and I worked around it by running the following code, given in this StackOverflow answer, copied below:

Pkg.add("Conda")
using Conda
Conda.add("nomkl")
Conda.add("numpy")
Conda.add("scipy")
Pkg.add("PyCall")
Pkg.add("PyPlot")

I did this after trying out two other solutions, which did not work, but which I mention here in case it was the combination of one or both of these with the above that made it work. They came from a question that was about MacOS, while the problem in this issue, just like mine, was on a Windows machine, but I tried it out anyway since it was the first relevant result I got from a google search.

Based on this answer, I ran the following code: using Pkg; Pkg.add("IJulia")

This did not work, so based on the subsequent answer I ran the following:

ENV["MPLBACKEND"]="qt5agg"
using PyPlot
# code to generate plots

This also did not work, so I did what I wrote at the top, and then I was able to get some plots. All these commands were ran on the REPL.

mzaffalon commented 8 months ago

Is upgrading Julia to a more recent version (e.g. v1.9.4) an option for you?

Sirplentifus commented 8 months ago

That's the version I have and I still had that problem.

lydiapurple commented 5 months ago

I had the exact same error, and I worked around it by running the following code, given in this StackOverflow answer, copied below:

Pkg.add("Conda")
using Conda
Conda.add("nomkl")
Conda.add("numpy")
Conda.add("scipy")
Pkg.add("PyCall")
Pkg.add("PyPlot")

I did this after trying out two other solutions, which did not work, but which I mention here in case it was the combination of one or both of these with the above that made it work. They came from a question that was about MacOS, while the problem in this issue, just like mine, was on a Windows machine, but I tried it out anyway since it was the first relevant result I got from a google search.

Based on this answer, I ran the following code: using Pkg; Pkg.add("IJulia")

This did not work, so based on the subsequent answer I ran the following:

ENV["MPLBACKEND"]="qt5agg"
using PyPlot
# code to generate plots

This also did not work, so I did what I wrote at the top, and then I was able to get some plots. All these commands were ran on the REPL.

I had the same issue with a machine on Windows 11, and your solution worked!

Pkg.add("Conda")
using Conda
Conda.add("nomkl")
Conda.add("numpy")
Conda.add("scipy")
Pkg.add("PyCall")
Pkg.add("PyPlot")