如何在 AWS Sagemaker 中使用 Python 3.8+?

问题描述 投票:0回答:2

我正在使用 Sagemaker Notebook 实例并为 Python 3.8 和 3.9 创建自定义内核。我可以在我的笔记本中选择这些内核,但是当我运行

sys.version
时,它显示

3.7.10 | packaged by conda-forge | (default, Feb 19 2021, 16:07:37)  [GCC 9.3.0]
.

运行

!python3 -V
显示
Python 3.7.12

如何使用Python 3.8?

编辑:
我使用 https://awstip.com/how-to-use-a-newer-python-version-in-aws-sagemaker-notebook-1682a89625ef

中的说明创建了内核

这归结为从笔记本实例中的终端运行这些命令:

conda create -n  my_custom_python_39 python=3.9

source activate my_custom_python_39

pip install virtualenv  
virtualenv my_custom_python_39_venv 
conda deactivate

source my_custom_python_39_venv/bin/activate 
pip install ipykernel 
python -m ipykernel install --user --name=my_custom_python_39 
python-3.x amazon-web-services amazon-sagemaker
2个回答
2
投票

我建议您仔细阅读 AWS 示例 LCC 脚本此处

我组合了这些脚本,并从我的 Notebook 实例的终端运行了以下命令,它创建了一个自定义的 Python 3.8 内核。

WORKING_DIR=/home/ec2-user/SageMaker/custom-miniconda
mkdir -p "$WORKING_DIR"
wget https://repo.anaconda.com/miniconda/Miniconda3-4.6.14-Linux-x86_64.sh -O "$WORKING_DIR/miniconda.sh"
bash "$WORKING_DIR/miniconda.sh" -b -u -p "$WORKING_DIR/miniconda" 
rm -rf "$WORKING_DIR/miniconda.sh"


# Create a custom conda environment
source "$WORKING_DIR/miniconda/bin/activate"
KERNEL_NAME="custom_python"
PYTHON="3.8"

conda create --yes --name "$KERNEL_NAME" python="$PYTHON"
conda activate "$KERNEL_NAME"

pip install --quiet ipykernel

# Customize these lines as necessary to install the required packages
conda install --yes numpy
pip install --quiet boto3


source "$WORKING_DIR/miniconda/bin/activate"

for env in $WORKING_DIR/miniconda/envs/*; do
    BASENAME=$(basename "$env")
    source activate "$BASENAME"
    python -m ipykernel install --user --name "$BASENAME" --display-name "Custom ($BASENAME)"
done

# Optionally, uncomment these lines to disable SageMaker-provided Conda functionality.
# echo "c.EnvironmentKernelSpecManager.use_conda_directly = False" >> /home/ec2-user/.jupyter/jupyter_notebook_config.py
# rm /home/ec2-user/.condarc


echo "Restarting the Jupyter server.."
# restart command is dependent on current running Amazon Linux and JupyterLab
CURR_VERSION=$(cat /etc/os-release)
if [[ $CURR_VERSION == *$"http://aws.amazon.com/amazon-linux-ami/"* ]]; then
    sudo initctl restart jupyter-server --no-wait
else
    sudo systemctl --no-block restart jupyter-server.service
fi

重新启动

jupyter-server
后,您应该从启动器中看到新的自定义内核:

使用自定义内核打开笔记本会得到以下结果:

import sys
sys.version

'3.8.13 | packaged by conda-forge | (default, Mar 25 2022, 06:04:18) \n[GCC 10.3.0]'

0
投票

我运行了上面的脚本并创建了新内核,但在我退出笔记本实例后它会被删除,并且每次都必须重新下载。如何停止删除?

© www.soinside.com 2019 - 2024. All rights reserved.