0%

通过pip安装软件,使用默认源的时候,往往下载速度很慢,所以需要配置到国内的源。

临时安装某个包。

1
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple some-package

设为默认配置:

1
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

会生成一个配置文件,在macOS下面的位置如下:

1
~/.config/pip/pip.conf

内容为:

1
2
[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple

再更新pip本身:

1
pip install pip -U    # 更新pip

临时使用某个镜像。

1
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pip -U

使用jupyter lab画图时,图片不显示而显示空白。


说一下目前最新版本的处理情况。

python base环境

1
2
python                    3.12.5
jupyterlab 4.2.5

python env py310环境

1
2
python                    3.10.15
plotly 5.20.0

在py310环境中安装了plotly以后,执行代码时,可能会遇到如下错误:

1
ValueError: Mime type rendering requires nbformat>=4.2.0 but it is not installed

按提示安装nbformat,mamba install nbformat,重启Kernel。再次执行代码时,程序不报错了,但图形位置会显示为空白。

本来只需要在base环境再安装jupyterlab-plotly插件就行了,但会报错,提示版本不匹配。
所以解决方案,就是在base环境再安装一下相同版本号的plotly。安装好了以后,再查看插件jupyterlab-plotly,就已经同时安装成功了。

1
2
3
4
5
6
$ jupyter labextension list
JupyterLab v4.2.5
/Users/simon/miniforge3/share/jupyter/labextensions
jupyterlab_pygments v0.3.0 enabled OK (python, jupyterlab_pygments)
jupyterlab-plotly v5.24.1 enabled X 🔒 (all plugins locked)
@jupyter-widgets/jupyterlab-manager v5.0.13 enabled OK (python, jupyterlab_widgets)

这时,重新启动jupyter lab,plotly的图形就可以正常显示了。

如果要安装@jupyter-widgets/jupyterlab-manager v5.0.13 enabled OK (python, jupyterlab_widgets),执行下面命令:

1
mamba install ipywidgets

首先要确保的是以下两个库jupyterlabipywidgets已经安装完成,并且版本”jupyterlab>=3” “ipywidgets>=7.6”。

需要安装一个扩展工具。一般来说,JupyterLab 3.x以上,会自动安装好,并且是安装在JupyterLab被安装的Python环境下面。

1
$ jupyter labextension install @jupyter-widgets/jupyterlab-manager jupyterlab-plotly

安装完可以查看一下。

1
2
# Check that jupyterlab-plotly is installed
$ jupyter labextension list

这个工具需要依赖nodejs,如果没有安装的话,需要安装一下。

1
$ mamba install nodejs

重启jupyter lab,图片即可正常显示。

有几个点需要注意的是:

jupyterlab以及jupyterlab的extension是安装在server端的,但是plotly包是安装在其他python环境里面的。

pandas中drop和apply方法里的axis参数,一开始的时候会让人觉得有些迷惑。国内的很多文章说这两个方法axis参数弄反了。

我之前也是这样理解的,觉得这明显有冲突,后来才发现是我理解错了。老外的设计是没有问题的。

axis = 0 表明 apply 一个方法到 column行标签(index)
axis = 1 表明 apply 一个方法到 row列标签(column labels)

通过这个定义,大家应该很清楚的知道apply(axis= )drop(axis = )的axis参数怎么填了。