Python 包管理工具 pip 可以在线安装 Python 包,也可以离线安装,只需要将包对应的 whl 文件下载下来,然后像直接安装即可。但是,当我们安装的 Python 是通过 anaconda 安装时,直接离线安装包,可能无法安装在 anaconda 的第三方库文件夹中,而是安装在当前用户的 .local 文件夹中,这可能会导致 jupyterhub 上的其他用户无法使用该包。这是因为 anaconda 的安装是管理员安装的,我这边只是 jupyterhub 的一个用户,如果我离线安装一个包,只会安装到我的用户目录下的 .local 中,而不是安装到 anaconda 的第三方库中。本篇给出解决方法。

下载 whl 文件

通过访问 pypi 官网 检索我们需要的包,如 fuzzywuzzy,进入该包的主页,如:fuzzywuzzy · PyPI,然后点击左边的导航里的 Download files,选择合适的版本,如:fuzzywuzzy-0.18.0-py2.py3-none-any.whl,下载该文件即可。

该文件不分具体的 Python 版本,只要是 Python2.x 和 Python 3.x 即可。有些包可能会区分具体版本,如 Python 3.8 和 Python 3.6 等。

安装 whl

常规的安装命令如下:

1
pip install fuzzywuzzy-0.18.0-py2.py3-none-any.whl

当 anaconda 的安装目录所属用户和上面的命令执行用户是同一个时,将测试安装后的包确实在 /usr/local/miniconda/lib/python3.9/site-packages 中。

因此,当想要离线安装包安装到 anaconda 第三方库中供 jupyterhub 所有用户使用,请首先切换用户到 anaconda 所属用户,并通过如下方法安装

1
python -m pip install fuzzywuzzy-0.18.0-py2.py3-none-any.whl

1
/usr/local/miniconda/bin/python -m pip install fuzzywuzzy-0.18.0-py2.py3-none-any.whl

如果不这样做,可能安装到目录:~/.local/lib/python3.9/site-packages/ 下。此时,jupyterhub 中的其他用户将无法调用你离线安装的 fuzzywuzzy 包。