bash - 无法在 AWS sagemaker 上安装“ipywidgets”Jupyter Lab Extension
问题描述
要在 AWS sagemaker 上安装 Jupyter Lab Extension,您需要遵循https://github.com/aws-samples/amazon-sagemaker-notebook-instance-lifecycle-config-samples/tree/master/scripts。然后相应地创建生命周期配置。
我做到了,这是我的on-start.sh
文件。
#!/bin/bash
set -e
# OVERVIEW
# This script installs a jupyterlab extension package in SageMaker Notebook Instance
sudo -u ec2-user -i <<'EOF'
# PARAMETERS
EXTENSION_NAME=@jupyter-widgets/jupyterlab-manager
source /home/ec2-user/anaconda3/bin/activate JupyterSystemEnv
jupyter labextension install $EXTENSION_NAME
source /home/ec2-user/anaconda3/bin/deactivate
EOF
一切都应该顺利进行,除了这个扩展会引发错误。
这是来自云手表的错误日志。
/bin/bash: /tmp/OnStart_2019-06-26-23-3260vo0j6p: /bin/bash^M: bad interpreter: No such file or directory
这是 sagemaker 控制台中显示的错误消息。
Failure reason
Notebook Instance Lifecycle Config 'arn:aws:sagemaker:ap-southeast-1:658055165324:notebook-instance-lifecycle-config/jupyter-widgets-for-jupyterlab-copy' for Notebook Instance 'arn:aws:sagemaker:ap-southeast-1:658055165324:notebook-instance/test' took longer than 5 minutes. Please check your CloudWatch logs for more details if your Notebook Instance has Internet access.
我已经多次尝试在脚本文件和设置文件中找到ipywidgets
有关“错误解释器”错误的错误。我在两者中都找不到任何错误痕迹。
我尝试将我的实例升级到 T2 最大实例,以防错误来自超时。
最奇怪的是,我可以从 jupyterlab 上的终端通过终端安装它。我测量了安装所需的总时间,发现4 mins
时间刚好够用(AWS 应该允许更多时间,因为这只是一个扩展安装)。请注意,此安装是在 T2 中等实例(您可以获得的最便宜的实例类型)下执行的。如果您以这种方式安装它必须重新启动 jupyter 实验室以使其工作,那么您重新启动您的实例,一切都会恢复到尚未安装的状态。这表明没有办法安装 jupyter 实验室扩展而不是使用生命周期配置,这将导致您返回错误。
在这一点上,如果我真的想使用ipywidgets
.
通常,这应该作为 AWS 上的技术支持提出,但我有基本计划,所以我决定将其归档在 StackOverflow 中,以供可能遇到相同问题的其他人使用。
解决方案
复制到记事本++视图>显示符号>显示所有符号替换“/ r”没有任何内容CRLF应该成为LF,这在unix中有效复制并粘贴为纯文本!!!
推荐阅读
- postgresql - 如何在 select 语句中执行和 select 语句并执行 string_agg 或 concat?
- python - 新闻头条如何引入 Python 网页滚动
- c# - 如何在 C# 中通过 SSH 连接到 redis?哪个 C# 客户端有该规定?
- python-3.x - 如何检查密码隐藏字符?
- c# - netcoreapp3.0 控制台应用程序发布失败,PublishTrimmed 为 true
- regex - 如何在记事本++中所有行的“=”符号后替换特定字符
- string - 如何使用递归函数从文本中获取字符串直到第一个空格?
- codeeffects - CodeEffects 规则编辑器值中的引号总是失败
- c# - Autofac用不同的参数解析同一个类实例
- actioncable - 未捕获的类型错误:this.perform 不是 rails 6 中的函数