JuliaPy / JuliaPy/PyPlot.jl

using PyPlot hangs/kills julia 1.8.5 or 1.9.0 on MacOS

未关闭
#567 4 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看
主要语言
Julia
星标
488
派生
90
PR 合并指标
30 天内没有已合并 PR

描述

## using PyPlot hangs or kills julia 1.8.5 or 1.9.0 on MacOS

### Synopsis
`using PyPlot` hangs julia. No progress for >10 hours. No error message. User `^C` exits julia with `Killed: 9`.

With repeated testing, behavior has evolved to crash immediately with `Killed: 9`, where it had hung.

### Demonstration
Carefully recursively force-removed the conda directory `$HOME/.julia/conda`, which seems to be shared between julia 1.8 and 1.9.

Start julia, making sure dynamic dependencies are consistent with the conda python installation.
```
LD_LIBRARY_PATH="$HOME/.julia/conda/3/lib" /Applications/Julia-1.8.app/Contents/Resources/julia/bin/julia
```
or
```
LD_LIBRARY_PATH="$HOME/.julia/conda/3/lib" /Applications/Julia-1.9.app/Contents/Resources/julia/bin/julia
```

Make sure julia is using the conda python distribution and build PyCall.
```julia
ENV["PYTHON"]=""
]build PyCall
Building Conda ─→ `~/.julia/scratchspaces/44cfe95a-1eb2-52ea-b672-e2afdf69b78f/e32a90da027ca45d84678b826fffd3110bb3fc90/build.log`
Building PyCall → `~/.julia/scratchspaces/44cfe95a-1eb2-52ea-b672-e2afdf69b78f/62f417f6ad727987c755549e9cd88c46578da562/build.log`
...
```

Quit and restart julia, then run
```julia
using PyPlot
```

Since we started by wiping `~/.julia/conda`, matplotlib is not installed. Conda is automatically deployed to install it:
```
[ Info: Installing matplotlib via the Conda matplotlib package...
[ Info: Running `conda install -y matplotlib` in root environment
...
Executing transaction: done
```
It hangs there.

Kill julia with ^C -> `Killed: 9`.

Try again now that matplotlib is installed:
```
LD_LIBRARY_PATH="$HOME/.julia/conda/3/lib" /Applications/Julia-1.8.app/Contents/Resources/julia/bin/julia
ENV["PYTHON"]=""
using PyPlot
```
Result: It just hangs immediately. So, I think probably conda installs matplotlib (maybe OK?), but julia is unable to use it.

I have to kill julia with ^C -> `Killed: 9`.

Trying again.
```
LD_LIBRARY_PATH="$HOME/.julia/conda/3/lib" /Applications/Julia-1.8.app/Contents/Resources/julia/bin/julia
ENV["PYTHON"]=""
using Conda # returns
using PyCall # returns
using PyPlot # crashes
Killed: 9
```
Crashes and exits.

Even wiping `.julia/conda` again, it just crashes now with `Killed: 9`

### Background
PyPlot had previously been working for me.
The first sign of trouble was an MKL dylib conflict error message and crash when running `using PyPlot`.
Unfortunately after many ^Cs I can't find that error message.

I updated julia's conda after that. Then I got the behavior reported above.

贡献指南

这个仓库没有索引到贡献指南

调研方向

使用提供的 Julia 1.8/1.9 启动命令、LD_LIBRARY_PATH,以及在 macOS 上依次执行 `using Conda`、`using PyCall` 和 `using PyPlot`,重现该故障。检查报告中的 Conda matplotlib 安装以及之前的 MKL dylib 冲突;当 `using PyPlot` 完成且未发生挂起或以 `Killed: 9` 退出时,即表示完成。

由索引模型根据 Issue 内容生成。

评估

技术栈
python
领域
data-visualization
Issue 类型
缺陷
难度
4/5
预计耗时
3-5 天
活跃度
停滞
描述清晰度
需要澄清
新手友好度
35/100

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。