我想将 Python 软件包安装到特定的 Conda 环境,检查已安装的软件包版本,或创建持久性 Conda 环境。
解决方法
将 Python 软件包安装到特定的 Conda 环境
如果您使用 pip 或 Conda 在终端上安装 Python 库而不指定正确的 Conda 环境,则在将该 Python 软件包导入到正在运行的笔记本中时会出现 ModuleNotFoundError 错误。这是因为您没有在正确的 Conda 环境中安装 Python 软件包。要在正确的 Conda 环境中安装 Python 软件包,请在从终端运行 pip 安装或 conda 安装之前先激活该环境。
例如:
sh-4.2$ source activate python3
(python3) sh-4.2$ pip install theano
(python3) sh-4.2$ source deactivate
(JupyterSystemEnv) sh-4.2$
要在笔记本单元格中运行此命令,请在命令开头添加感叹号 ("!")。这将强制该命令从笔记本作为 shell 命令运行,并确保该软件包已安装在当前的 Jupyter 内核中。
例如:
import sys
!conda install -y --prefix {sys.prefix} theano
**注意:**在笔记本单元格中运行 conda 安装时,无法输入交互式响应。要使用 Conda 在笔记本单元格中安装软件包,您必须显式传递 -y。否则,该命令将挂起并等待用户确认。
或者,使用 pip 安装:
import sys
!{sys.executable} -m pip install theano
有时,pip 可能无法安装某些软件包的依赖关系。发生这种情况时,请使用 Conda 而不是 pip 来安装软件包。Conda 会在安装软件包之前验证是否满足所有必需组件的要求。有关详细信息,请参阅 Conda 文档中的了解 Conda 和 pip。
其他实用命令
要查看预构建的 Conda 环境,请在笔记本实例终端中运行以下命令之一:
$ conda env list
$ conda info --envs
示例输出:
# conda environments:
#
base /home/ec2-user/anaconda3
JupyterSystemEnv * /home/ec2-user/anaconda3/envs/JupyterSystemEnv
R /home/ec2-user/anaconda3/envs/R
amazonei_mxnet_p27 /home/ec2-user/anaconda3/envs/amazonei_mxnet_p27
amazonei_mxnet_p36 /home/ec2-user/anaconda3/envs/amazonei_mxnet_p36
amazonei_tensorflow_p27 /home/ec2-user/anaconda3/envs/amazonei_tensorflow_p27
amazonei_tensorflow_p36 /home/ec2-user/anaconda3/envs/amazonei_tensorflow_p36
chainer_p27 /home/ec2-user/anaconda3/envs/chainer_p27
chainer_p36 /home/ec2-user/anaconda3/envs/chainer_p36
mxnet_p27 /home/ec2-user/anaconda3/envs/mxnet_p27
mxnet_p36 /home/ec2-user/anaconda3/envs/mxnet_p36
python2 /home/ec2-user/anaconda3/envs/python2
python3 /home/ec2-user/anaconda3/envs/python3
pytorch_p27 /home/ec2-user/anaconda3/envs/pytorch_p27
pytorch_p36 /home/ec2-user/anaconda3/envs/pytorch_p36
tensorflow_p27 /home/ec2-user/anaconda3/envs/tensorflow_p27
tensorflow_p36 /home/ec2-user/anaconda3/envs/tensorflow_p36
要查看笔记本上安装的内核,请运行此命令:
sh-4.2$ ipython kernelspec list
要检查 Conda 环境中安装的软件包版本,请在笔记本实例终端中运行以下命令:
(python3) sh-4.2$ pip freeze | grep pandas
或者,使用此命令在笔记本单元格中检查软件包版本:
import pandas as pd
pd.__version__
创建持久性 Conda 环境
停止笔记本时,SageMaker 会终止该笔记本的 Amazon Elastic Compute Cloud (Amazon EC2) 实例。Conda 环境中安装的软件包不会在会话之间保留。在笔记本实例会话之间保留的路径只有 /home/ec2-user/SageMaker 目录。这是笔记本的 Amazon Elastic Block Store (Amazon EBS) 卷的目录。如果您希望在会话之间保留您的库,请参阅如果在我尝试安装库时出现生命周期配置超时,如何确保手动安装的库在 Amazon SageMaker 中持久存在?
相关信息
在笔记本实例中安装外部库和内核
使用生命周期配置脚本自定义笔记本实例