【AWS】【EC2】Python3.8/3.9をインストールしよう

Python

 

Amazon Linux2 には、Pythonがデフォルトで入っています

ただ、発環境とバージョンが異なる場合、入れなおす必要があるため、
その方法をご紹介します

 

現状を確認しよう

Python

 

デフォルトでは、Python 2.7.10 がインストールされています

 

Python3 と指定すると 3.7.10 がインストールされています

 

また、Extras Library にあれば、amazon-linux-extras コマンドでインストールできます

→  Python3.8 は、インストールできます

 

pip

 

pipとは、Python のパッケージ管理ツールのことです。

pip はありませんが、pip3 はあります

 

pip に関して詳しく知りたい方は以下をご参考ください

 

Python 3.8/3.9 をインストール

Python3.8

 

amazon-linux-extras コマンドでインストールしていきます
-y をつけると、y/N と聞かれなくなります(すべて y でインストール)

※ec2-user なので、sudo つけて実行しています

 

(実行コマンド)

(実行結果)

 

Python3.9

 

3.9はyumやamazon-linux-extrasでインストールできないので
Pythonのソースをダウンロードしてきてコンパイルします。

今回は、Python 3.9.12 をインストールします

各コマンドの詳細は下記をご参考ください

 

(実行コマンド)

(実行結果)

 

ちなみに、python や python3 のバージョンを確認すると、
デフォルトと変わりませんので、ご注意ください

 

pip

 

Python3を入れた段階で一緒にインストールされます

 

(Python3.8 をインストールした場合)

 

(Python3.9 をインストールした場合)

 

ちなみに、まだpip コマンドは使用できません

 

コマンドの設定

 

Python 3.8/3.9 や pip 3.8/3.9 をインストールしたはいいけど、
毎回、python3.8 とか pip3.8 というコマンドを使用するのは面倒ですよね…

2通りの方法があります

  1. aliasを設定
    そのユーザーのコマンドのみ書き換える
  2. python、pipコマンド のパスを変える
    サーバー全体のコマンドを書き換える
    ※ amazon-linux-extras コマンドが使用できなくなるため、ご注意ください

 

aliasを設定

 

alias(コマンドの別名)を設定して、
python や pip コマンドが python3.8/3.9 や pip3.8/3.9を実行できるようにします

 

・Python3.8の場合

(実行コマンド)

(実行結果)

 

・Python3.9の場合

(実行コマンド)

(実行結果)

 

python、pipコマンド のパスを変える

 

※ amazon-linux-extras コマンドが使用できなくなるため、ご注意ください

 

まず、python コマンドのパス(どこにあるか)を調べます

コマンドのパスを調べるときは which コマンドを使用します

python コマンドは、/usr/bin/python という場所にあるので、そこを見てみます

ll /usr/bin/python でファイルを見てみると、シンボリックリンクとなっています

 

シンボリックリンクとは?

ショートカットのようにほかのファイルを参照しているもののこと

 

参照先の python2 というフォルダも python2.7 を参照しています。

つまり、python -> python2 -> python2.7 と参照しており、
python コマンドは最終的に python2.7 にたどりつくため、

となります。

 

これを python3.8/3.9 に向けたいので、
/usr/bin/python の参照先を python3.8/3.9 にします

正確には、python -> python3 -> python3.8/3.9 と参照するようにします

python3.8/3.9 のパスを which コマンドで確認します

 

また、python3のパスを確認すると、

/usr/bin/python3 になります

これもシンボリックリンクになっており、python3.7を参照しています

なので、python3 のバージョンを確認すると、3.7.10 と表示されるわけです。

 

さて、具体的な作業を確認します。

目的は python -> python3 -> python3.8/3.9 と参照させることです。

  1. pythonの参照先をpython3に変更する
  2. python3の参照先をpython3.8/3.9に変更する

 

pythonの参照先をpython3に変更する

 

ln コマンドを使用して参照先を変更していきます

詳細は下記の記事をご参考ください

シンボリックリンクの向き先変更(ln -nfs TARGET LINK_NAME) - Qiita
シンボリックリンクの向き先を変えたいときって結構あるけど、単純にln -s TARGET LINK_NAMEってしたら怒られる("ln: target: File exists")。そこで泣く泣く…

 

(実行コマンド)

※ec2-user なので、sudo つけて実行します

(実行結果)

/usr/bin/python の参照先が /usr/bin/python3 に変更されており、
python -V の結果も、3.7.10 になりました

 

python3の参照先をpython3.8/3.9に変更する

 

(実行コマンド)

・python3.8の場合

・python3.9の場合

 

(実行結果)

・python3.8の場合

・python3.9の場合

 

pipコマンドも設定する

 

pipコマンドはそもそも使用できず、whichコマンドで調べてもないよーと返ってきます

 

pip3.8/3.9 のパスを調べました

 

pip3.8/3.9 のシンボリックリンクを /usr/bin/pip として作成します

(実行コマンド)

・pip3.8

・pip3.9

(実行結果)

・pip3.8

・pip3.9

 

これで、python や pip コマンドで Python3.8/3.9 と pip3.8/3.9 が使えるようになりました

 

参考記事

 

AmazonLinux2でPython3環境構築 - Qiita
AmazonLinux2には標準でPython2系がインストール済みですが、Python3を入れたい場合に共存してコマンドが面倒なので標準でPython3を使うように変更する手順です。一旦pyth…
【AWS】EC2にpython3.8をインストールして使えるようにする | Free Hero Blog
AWSのEC2にはデフォルトでpython3.7がインストールされています。 デフォルトpython3.7ではなくpython3.8をEC2にインストールをして使用することがどうしても必要で、お困りではないでしょうか? 本日はそんなAWSのEC2にpython3.8をインストールして、使用する方法を紹介します。
Python, pipでrequirements.txtを使ってパッケージ一括インストール | note.nkmk.me
Pythonのパッケージ(ライブラリ)をpipで管理している場合、設定ファイルrequirements.txtを使って指定のパッケージを指定のバージョンで一括インストールできる。 User Guide - Requirements Files - pip document ...
Linux入門 ~「パスを通す」とは~ - Qiita
#概要ある程度プログラミングの経験のあるかたなら、「パスを通す」という作業をしたことあるのではないでしょうか?こんなコードexport PATH="$PATH:/opt/local/bin"今回は、パスを通すというのは一体なんなのか、なにをしているのか、というの…
【Linux】PATHについて - Qiita
ターミナルのコマンドであるPATHについて記載していきます。#PATHとはコマンド検索パスを追加するコマンドです。コマンド検索パスとは、コマンドの実行ファイルを探しにいくようなパスのことです。$ ls/bin/ls…

 

コメント

タイトルとURLをコピーしました