简体   繁体   English

Plotly write.image() 与 kaleido 0.2.1 一起冻结

[英]Plotly write.image() freezes with kaleido 0.2.1

I read tens of related questions but none of them solved my issue.我阅读了数十个相关问题,但没有一个能解决我的问题。

Setup设置

Currently I'm using Python 3.9.12 in a conda environment (named 'plot_env', conda version = 4.13.0).目前我在 conda 环境中使用 Python 3.9.12(名为“plot_env”,conda 版本 = 4.13.0)。 For completeness here I show conda info and conda list output.为了完整起见,我在这里展示了 conda info 和 conda list output。

(plot_env) PS C:\windows\System32> conda info
active environment : plot_env
active env location : C:\Users\mirko\anaconda3\envs\plot_env
shell level : 2
user config file : C:\Users\mirko\.condarc
populated config files : C:\Users\mirko\.condarc
conda version : 4.13.0
conda-build version : 3.21.8
python version : 3.9.12.final.0
virtual packages : __win=0=0=1=x86_64
base environment : C:\Users\mirko\anaconda3  (writable)
conda av data dir : C:\Users\mirko\anaconda3\etc\conda
conda av metadata url : None
channel URLs : https://repo.anaconda.com/pkgs/main/win-64
https://repo.anaconda.com/pkgs/main/noarch
https://repo.anaconda.com/pkgs/r/win-64
https://repo.anaconda.com/pkgs/r/noarch
https://repo.anaconda.com/pkgs/msys2/win-64
https://repo.anaconda.com/pkgs/msys2/noarch
package cache : C:\Users\mirko\anaconda3\pkgs
C:\Users\mirko\.conda\pkgs
C:\Users\mirko\AppData\Local\conda\conda\pkgs
envs directories : C:\Users\mirko\anaconda3\envs
C:\Users\mirko\.conda\envs
C:\Users\mirko\AppData\Local\conda\conda\envs
platform : win-64
user-agent : conda/4.13.0 requests/2.27.1 CPython/3.9.12 Windows/10 Windows/10.0.22000
administrator : False
netrc file : None
offline mode : False

(plot_env) PS C:\windows\System32> conda list
# packages in environment at 
C:\Users\mirko\anaconda3\envs\plot_env:
#
# Name                    Version                   Build  
Channel
asttokens                 2.0.8                    pypi_0    pypi
attrs                     22.1.0                   pypi_0    pypi
backcall                  0.2.0                    pypi_0    pypi
ca-certificates           2022.07.19           haa95532_0
certifi                   2022.6.15        py39haa95532_0
colorama                  0.4.5                    pypi_0    pypi
debugpy                   1.6.3                    pypi_0    pypi
decorator                 5.1.1                    pypi_0    pypi
entrypoints               0.4                      pypi_0    pypi
et-xmlfile                1.1.0                    pypi_0    pypi
executing                 0.10.0                   pypi_0    pypi
fastjsonschema            2.16.1                   pypi_0    pypi
ipykernel                 6.15.1                   pypi_0    pypi
ipython                   8.4.0                    pypi_0    pypi
jedi                      0.18.1                   pypi_0    pypi
jsonschema                4.10.3                   pypi_0    pypi
jupyter-client            7.3.4                    pypi_0    pypi
jupyter-core              4.11.1                   pypi_0    pypi
kaleido                   0.2.1                    pypi_0    pypi
matplotlib-inline         0.1.6                    pypi_0    pypi
nbformat                  5.4.0                    pypi_0    pypi
nest-asyncio              1.5.5                    pypi_0    pypi
numpy                     1.23.2                   pypi_0    pypi
openpyxl                  3.0.10                   pypi_0    pypi
openssl                   1.1.1q               h2bbff1b_0
packaging                 21.3                     pypi_0    pypi
pandas                    1.4.3                    pypi_0    pypi
parso                     0.8.3                    pypi_0    pypi
pickleshare               0.7.5                    pypi_0    pypi
pip                       22.1.2           py39haa95532_0
plotly                    5.10.0                   pypi_0    pypi
prompt-toolkit            3.0.30                   pypi_0    pypi
psutil                    5.9.1                    pypi_0    pypi
pure-eval                 0.2.2                    pypi_0    pypi
pygments                  2.13.0                   pypi_0    pypi
pyparsing                 3.0.9                    pypi_0    pypi
pyrsistent                0.18.1                   pypi_0    pypi
python                    3.9.12               h6244533_0
python-dateutil           2.8.2                    pypi_0    pypi
pytz                      2022.2.1                 pypi_0    pypi
pywin32                   304                      pypi_0    pypi
pyzmq                     23.2.1                   pypi_0    pypi
setuptools                61.2.0           py39haa95532_0
six                       1.16.0                   pypi_0    pypi
sqlite                    3.39.2               h2bbff1b_0
stack-data                0.4.0                    pypi_0    pypi
tenacity                  8.0.1                    pypi_0    pypi
tornado                   6.2                      pypi_0    pypi
traitlets                 5.3.0                    pypi_0    pypi
tzdata                    2022a                hda174b7_0
vc                        14.2                 h21ff451_1
vs2015_runtime            14.27.29016          h5e58377_2
wcwidth                   0.2.5                    pypi_0    pypi
wheel                     0.37.1             pyhd3eb1b0_0
wincertstore              0.2              py39haa95532_2

Minimal working example最小的工作示例

import plotly.express as px
import plotly.io as pio
x = [1,2,3]
y = [2,3,4]
fig=px.scatter(x, y)
pio.write_image(fig, './figure', format='png')

After running this script the write.image() command freeze and the output in the terminal doen't show anything.运行此脚本后,write.image() 命令冻结,终端中的 output 不显示任何内容。

What I already Tried我已经尝试过的

Following some tips i found on the internet I tried:按照我在互联网上找到的一些提示,我尝试了:

Installing kaleido 0.1.0: this just turned the problem to something else.安装 kaleido 0.1.0:这只是将问题转为其他问题。 When i try to run the script with kaleido 0.1.0 the output is the following当我尝试使用 kaleido 0.1.0 运行脚本时,output 如下

The kaleido executable is required by the kaleido Python library,
but it was not included in the Python package and it could not be found on the system PATH.
Searched for included kaleido executable at:
C:\Program Files\GitHub CLI
C:\Users\mirko\AppData\Local\Microsoft\WindowsApps
C:\Users\mirko\AppData\Local\Programs\Microsoft VS Code\bin
C:\Users\mirko\anaconda3\Library\bin
C:\Users\mirko\anaconda3\Scripts
C:\Users\mirko\anaconda3\condabin
C:\Users\mirko\AppData\Local\GitHubDesktop\bin
C:\Program Files\heroku\bin

So I added the specific path to my kaleido.cmd to Path, but this passage looks pretty sketchy to me because it means I will need to repeat it every time i create a new environment with kaleido installed.所以我将我的 kaleido.cmd 的特定路径添加到 Path 中,但这段话对我来说看起来很粗略,因为这意味着我每次创建安装了 kaleido 的新环境时都需要重复它。
This solved the issue: I exported the correct png image.解决了问题:我导出了正确的 png 图像。 So my main question is: How do I solve this problem once and for all?所以我的主要问题是:如何一劳永逸地解决这个问题?

Using kaleido 0.2.1: nothing seems to solve the issue.使用 kaleido 0.2.1:似乎没有什么能解决问题。 The terminal just freezes and i can't use ctrl+C to print a log of the errors.终端只是冻结,我无法使用 ctrl+C 打印错误日志。 I tried setting pio.kaleido.scope.mathjax = None but it did nothing.我尝试设置pio.kaleido.scope.mathjax = None但它什么也没做。

You can probably get away with:你可能会逃脱:

conda install -c conda-forge kaleido-core=0.2.1

However, I'd lean toward recreating the environment with Conda packages prioritized (at least for stuff that needs non-Python components):但是,我倾向于重新创建优先使用 Conda 包的环境(至少对于需要非 Python 组件的东西):

conda create -n plot_env2 -c conda-forge python=3.9 python-kaleido

so that Conda can properly handle all the non-Python dependencies, which is its specialty.以便 Conda 能够正确处理所有非 Python 依赖项,这是它的专长。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM