1
0

More than 1 year has passed since last update.

pythonのバージョン変更方法(aliasとpyenv)

Last updated at Posted at 2022-06-27

はじめに

pythonを使用して構築する際に、バージョンの変更方法によって違いが発生し、詰まってしまったため、まとめておくことにしました。
AmazonLinux2を使用してpython3.9.2の適用を検証していきます。
デフォルトではpythonコマンドでは2.7.18、python3コマンドでは3.7.10が呼び出されます。

適用パターンは以下の3パターンです。
1.wgetを使用してインストール、aliasで適用
2.wgetを使用してインストール、シンボリックリンクの変更で適用
3.gitを使用してインストール、pyenvで適用

インストール方法(1,2共通)

python3.9.2のインストール

インストールに必要なツールをインストールします。

$ sudo yum groupinstall "development tools"
$ sudo yum install gcc zlib-devel bzip2 bzip2-devel readline-devel sqlite sqlite-devel openssl-devel tk-devel libffi-devel xz-devel

python3.9.2をインストールしていきます。

$ wget https://www.python.org/ftp/python/3.9.2/Python-3.9.2.tar.xz
$ tar xJf Python-3.9.2.tar.xz

$ cd Python-3.9.2
$ ./configure
$ make
$ sudo make install

$ python -V
Python 2.7.18
$ python3 -V
Python 3.9.2

ここまででインストールまで完了したので、pythonコマンドにも適用させていきます。

1.aliasで適用

aliasコマンドを使用する方法と~/.bashrcに書き込む方法の2パターンあります。
どちらもpython3がpythonコマンドになりかわっているイメージです。

$ alias python='python3'

$ python -V
Python 3.9.2
$ python3 -V
Python 3.9.2
$ echo "alias python='python3'" >> ~/.bashrc
$ source ~/.bashrc

$ python -V
Python 3.9.2
$ python3 -V
Python 3.9.2

2.シンボリックリンクの変更で適用

現在のパスを確認してみましょう。

$ which python
/usr/bin/python
$ which python3
/usr/local/bin/python3

このパスはそれぞれのバージョンがある場所へのシンボリックリンクになっています。
pythonコマンドのパスを適用したいバージョンへのシンボリックリンクに変更させます。

$ sudo rm /usr/bin/python
$ sudo ln -s /usr/local/bin/python3.9 /usr/bin/python

$ python -V
Python 3.9.2
$ python3 -V
Python 3.9.2

3.gitを使用してインストール、pyenvで適用

インストールに必要なツールをインストールします。(ここまでは1,2と共通です。)

$ sudo yum groupinstall "development tools"
$ sudo yum install gcc zlib-devel bzip2 bzip2-devel readline-devel sqlite sqlite-devel openssl-devel tk-devel libffi-devel xz-devel 

gitから使いたいバージョンをcloneします。
gitコマンドが使用できない場合は、yumでインストールしてください。
下記作業は不要なので飛ばしてください。

$ git clone https://github.com/deadsnakes/python3.9.git

pyenvを使用してバージョンを切り替えるため、pyenvをインストールし、使用できるように設定していきます。

$ git clone https://github.com/pyenv/pyenv.git ~/.pyenv
$ echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile
$ echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile
$ echo 'eval "$(pyenv init --path)"' >> ~/.bash_profile
$ echo 'eval "$(pyenv init -)"' >> ~/.bash_profile
$ source ~/.bash_profile

$ pyenv --version
pyenv 2.3.1-20-g572a8bcf

pyenvのバージョンが表示されたら、使用可能です。

pyenvコマンドを使用して使いたいバージョンをインストールしていきます。
インストール可能なバージョンはpyenv -listで確認できます。

$ pyenv install 3.9.2

次のコマンドで切り替え可能なバージョンを確認できます。

$ pyenv versions
* system (set by /home/ec2-user/.pyenv/version)
  3.9.2

*がついたバージョンが適用中のバージョンです。
3.9.2が使用できるように変更します。

$ pyenv global 3.9.2
$ pyenv versions
  system
* 3.9.2 (set by /home/ec2-user/.pyenv/version)

$ python -V
Python 3.9.2
$ python3 -V
Python 3.9.2

まとめ

pyenvはpythonのバージョン管理を行います。
複数のバージョンを切り替えながら使用するときはpyenvを使うとよいでしょう。
aliasコマンドを使用する方法は手軽ですが、インスタンスの再起動などで消える可能性があるので、注意が必要です。
個人的にはpyenvで適用していけば間違いないのかなと思いました。

参考サイト

pyenvを使ってPython実行環境の構築
AmazonLinux2でPython3環境構築

1
0
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
1
0