LoginSignup
3
4

More than 3 years have passed since last update.

【小ネタ】Amazon Linux 2 にPython3をインストールしてvenv環境を構築する【venv】

Last updated at Posted at 2019-12-15

はじめに

Amazon Linux 2をはじめとし、大抵のLinuxディストリビューションは、パッケージマネージャ(yumやaptなど)の機能でPythonをインストールすることが可能になっています。
しかしながら、これらパッケージマネージャでインストールされるソフトウェアは安定性が重視され、最新のアップデートに追従しないことが殆どです。

まれにAWS CLIの最新版が必要になることがありますが、これはOSディストリビューションのパッケージ版では大体において追従されないため、pipでのインストールを行うことが殆どかと思います。
OSディストリビューションのpipを利用してPythonパッケージのインストール/アップデートを行うと、他の既存のアプリケーションに影響を与えてしまう可能性があります。

そこで、OSディストリビューション環境に影響を与えずに、pipによるPythonパッケージのインストールを自由に行えるようにするため、venvを利用してPython3環境を整備する手順をまとめます。

環境

  • ディストリビューション:
    • Amazon Linux release 2 (Karoo)
    • cpe:2.3:o:amazon:amazon_linux:2
  • venv環境名:
    • my_venv

手順

Python3のインストール

まずは、Amazon Linux 2のパッケージマネージャであるyumを利用し、Python3をインストールします。
2019/12/16現在のPython3のバージョンは、3.7.4のようです。

### Python3インストール
$ sudo yum install python3
※途中省略

Dependencies Resolved

================================================================================================================================================================
 Package                                    Arch                           Version                                     Repository                          Size
================================================================================================================================================================
Installing:
 python3                                    x86_64                         3.7.4-1.amzn2.0.3                           amzn2-core                          71 k
Installing for dependencies:
 python3-libs                               x86_64                         3.7.4-1.amzn2.0.3                           amzn2-core                         9.0 M
 python3-pip                                noarch                         9.0.3-1.amzn2.0.1                           amzn2-core                         1.9 M
 python3-setuptools                         noarch                         38.4.0-3.amzn2.0.6                          amzn2-core                         617 k

Transaction Summary
================================================================================================================================================================
Install  1 Package (+3 Dependent packages)

Total download size: 12 M
Installed size: 50 M
Is this ok [y/d/N]: y

※途中省略
### 意図したバージョンがインストールされていることを確認
$ which python3
/usr/bin/python3
$ python3 --version
Python 3.7.4

my_venvという名称のvenv環境を作成

venvは専用のコマンドが用意されているわけではなく、Pythonのモジュールとして提供されます。そのため、Pythonの「-m」オプションを利用してvenvを実行します。

### my_venvという名称の環境を、ホームディレクトリ以下に作成
$ cd
$ python3 -m venv my_venv
$ ls ~/my_venv/
bin/        include/    lib/        lib64/      pyvenv.cfg

なお、venv環境への切り替えの際には、activateコマンドを利用します。これは「~/my_venv/bin/activate*」といったスクリプトで提供されます。

$ ls -l ~/my_venv/bin/activate*
-rw-r--r-- 1 vagrant vagrant 2203 Dec 15 15:30 /home/vagrant/my_venv/bin/activate
-rw-r--r-- 1 vagrant vagrant 1259 Dec 15 15:30 /home/vagrant/my_venv/bin/activate.csh
-rw-r--r-- 1 vagrant vagrant 2411 Dec 15 15:30 /home/vagrant/my_venv/bin/activate.fish

venv環境に切り替え

それでは先ほど作成したmy_venv環境に切り替えます。
切り替わったかどうかの確認には、whichを使うと便利です。

$ . ~/my_venv/bin/activate
(my_venv) $ python --version
Python 3.7.4
(my_venv) $ which python
~/my_venv/bin/python

AWS CLIのインストール

venv環境に切り替わった状態で、pip installを利用してAWS CLIをインストールします。

### 実行しているpipコマンドがvenv環境のものになっていること
(my_venv) $ which pip
~/my_venv/bin/pip
### AWS CLIのインストール・バージョンの確認
(my_venv) $ pip install awscli
Collecting awscli

※途中省略

Installing collected packages: PyYAML, docutils, six, python-dateutil, jmespath, urllib3, botocore, s3transfer, pyasn1, rsa, colorama, awscli
  Running setup.py install for PyYAML ... done
Successfully installed PyYAML-5.1.2 awscli-1.16.303 botocore-1.13.39 colorama-0.4.1 docutils-0.15.2 jmespath-0.9.4 pyasn1-0.4.8 python-dateutil-2.8.0 rsa-3.4.2 s3transfer-0.2.1 six-1.13.0 urllib3-1.25.7

インストールが完了したら、AWS CLIのバージョンが最新のものであることを確認します。

### 念のためシェルを実行しなおす
(my_venv) $ exec bash
(my_venv) $

### AWS CLIコマンドのパスが、venv環境以下のものであることを確認する
(my_venv) $ which aws
~/my_venv/bin/aws

### AWS CLIの最新版がインストールされていることを確認する
(my_venv) $ aws --version
aws-cli/1.16.303 Python/3.7.4 Linux/4.14.104-95.84.amzn2.x86_64 botocore/1.13.39
3
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
4