我正在使用 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
我建议您仔细阅读 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]'
我运行了上面的脚本并创建了新内核,但在我退出笔记本实例后它会被删除,并且每次都必须重新下载。如何停止删除?