自定义环境 jupyter notebook

customise environment jupyter notebook

我希望为我的 Jupyter notebook 创建一个自定义环境,而不必从会话中安装各种包。

按照https://dataplatform.cloud.ibm.com/docs/content/wsj/analyze-data/customize-envs.html的说明,我自定义了如下环境

# Modify the following content to add a software customization to an environment.
# To remove an existing customization, delete the entire content and click Apply.

# Add conda channels below defaults, indented by two spaces and a hyphen.
channels:
  - defaults

# To add packages through conda or pip, remove the comment on the following line.
# dependencies:

# Add conda packages here, indented by two spaces and a hyphen.
# Remove the comment on the following line and replace sample package name with your package name:
  - ffmpeg=4.2.2

# Add pip packages here, indented by four spaces and a hyphen.
# Remove the comments on the following lines  and replace sample package name with your package name.
  - pip:
    - numpy==1.18.0
    - pandas==1.0.3
    - matplotlib==3.1.3

因为我的笔记本和 pandasnumpymatplotlib 的最新版本需要 mpeg 编解码器。

配置为

Environment             Custom env
Creator                 Andrea Chiappo
Language                Python 3.6
Hardware configuration  4 vCPU and 16 GB RAM
Software configuration  Default Python 3.6 + DO

但是,一旦我启动会话,如果我尝试

import pandas as pd
print(pd.__version__)

我得到了包的默认版本,即 0.24.1

有人知道如何在我的 jypter 会话中启用此类 Python 软件包的最新版本吗?非常感谢

您需要取消注释行 # dependencies:。并随意删除所有评论。这将有助于发现 YAML 格式的缩进问题。试试这个:

dependencies:
  - ffmpeg=4.2.2
  - pip
  - pip:
    - numpy==1.18.0
    - pandas==1.0.3
    - matplotlib==3.1.3

但是 从 PyPI 而不是 Anaconda 安装 numpy 和 pandas 的更新可能会导致问题。一些 Anaconda 包是为特定版本的 numpy 构建的,如果替换 numpy 可能会出现异常。我建议您在可行的情况下从 Anaconda 而不是 PyPI 获取包。在 Python 笔记本中,您可以检查 conda 将应用哪些更改,如下所示:

!conda install --dry-run numpy=1.18

pandas 和 matplotlib 也是如此。或者您使用相同的命令指定所有三个。虽然不是很明显,但哪个包更改会导致引入依赖项更新。

!conda install --dry-run numpy=1.18 pandas=1.0 matplotlib=3.1

我没有尝试是否可以从 Anaconda 获得您要安装的确切修复级别。如果没有,或者如果某些组合不起作用(例如,当 Anaconda 不再为 Python 3.6 构建新的软件包版本时),您可以选择是否要使用 Anaconda 提供的内容,或者是否从 PyPI 获取包并希望没有损坏。

PS: 在上面的自定义中,我添加了 pip 依赖项作为样式问题。当 pip 未列为依赖项时,较新版本的 conda 会抱怨有 pip: 部分。当我们在 WS Cloud 中推出新的运行时时,他们将使用更新版本的 conda。