AWS EC2(Linux)上に構築したJupyterHubで標準バージョン以外のPythonを実行できるようにしたい

2024.02.22

データアナリティクス事業本部の荒木です。

AWS EC2(Linux)上記に構築したJupyterHubにEC2に標準でインストールされているPython3.7以外のPythonを実行する方法についてまとめます。

環境

  • OS:Amazon Linux release 2 (Karoo)
  • 標準バージョン:Python3.7.16
  • 追加するバージョン:Python3.10.13

本題

Pythonのインストール

ライブラリのインストール

Python3.10.13のインストールの前に、以下のライブラリがインストールされていることを確認します。
インストールされていない場合は、インストールします。 ※インストールされていないとipykernelをインストールでエラーになります。

sudo yum install libffi-devel
sudo yum install sqlite-devel

また、公式のソースコードのダウンロードページからダウントードした際にファイルを解凍するために必要なライブラリもインストールされていること確認し、無ければインストールします。

sudo yum install zlib-devel

OpenSSL 1.1.1のインストール

python3.10.xではOpenSSL 1.1.1が必須なためインストールする必要があります。

sudo yum install -y openssl11 openssl11-devel

Python3.10.13のインストール

必要なライブラリをインストールしたらPythonをインストールします。

sudo wget https://www.python.org/ftp/python/3.10.13/Python-3.10.13.tgz
sudo tar xzf Python-3.10.13.tgz
cd Python-3.10.13
sudo ./configure --enable-optimizations
sudo make altinstall
python3.10 -V
pip3.10 -V

※ここでライブラリをインストールしておらず、pipがうまくインストールされずにはまりました。。

ipykernelのインストール・アクティベート

追加したいバージョンのPythonをインストールしたら、ipykernelのインストールとアクティベートを行います。

ipykernelのインストール

  1. JupyterHubにログインし、ターミナルを開きます。

  2. 以下コマンドを実行しipykernelをインストールします。

    pip3.10 install ipykernel

  3. 以下のコマンドでpython3.10のipykernelをアクティベートします。

    python3.10 -m ipykernel install --user --name python310

  4. ログインし直すと新しいバージョンのipykernelのノートブックなどが作成されています。

  5. バージョンを確認するとpython3.10になっています。

まとめ

ipykernelのアクティベートがユーザー単位でしかできず、ユーザー毎にアクティベートする必要がありました。 システム全体でアクティベートできる方法があるのか検討中です。。

参考になれば幸いです。

参照

ipykernelについて