RのWeb制作

Webサービス制作のための技術情報を。データ分析(Python、機械学習コンペ他)や自作野球ゲームMeisyoのこと中心。

Web制作 Python VPS

(VPSでつくる) Pythonのバージョンを2.7.5から3.6.8にする

投稿日:2021年5月5日 更新日:

連載第四回目です。
CentOS7にインストールされているPythonのバージョンが2.7なので、バージョンアップをします。

そうしないとPythonのアプリが動きません。
なぜなら、Python2と3はプログラムの記法が違います。そりゃ動かないですよね。。

今回はpyenvを使ってPythonのバージョンを上げます。
バージョンはNginx Unitで使われている3.6.8を利用します。
3.6.8以外にする場合は、Dockerコンテナ等別途準備が必要です。(参考ページ

この記事は、VPSで作るPythonでのWebアプリ運用環境の連載記事です。
その他については上記ページをお読みください。

1. pyenvのインストール

まずは、Pythonのバージョンを確認します。
2.X.Xだと思います。

1
python -V # python --version も可

※もし3.X.Xになっている場合は下記工程は不要です。

続いてgitをインストールします。

1
sudo yum install git

pyenvのインストールを実施します。

1
curl https://pyenv.run | bash

実は、ウラで下記のようなコマンドが実行されています。(公式サイトより)
gitをインストールすることで、このコマンドを有効にできます。

1
curl -L https://github.com/pyenv/pyenv-installer/raw/master/bin/pyenv-installer | bash

※上記のインストール後に、下記工程で入力すべき文字列(*1)が表示されるので参考にしてください。

続いて、シェルの起動時にpyenvを自動的に起動するようにしておきましょう。
ファイル~/.bashrcを下記コマンドで開いてください。

1
vi ~/.bashrc

最後に、~/.bashrcの内容に次の文字列(*1)を追記(赤枠)します。

1
2
3
export PATH="/root/.pyenv/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"


※PATHの/root/部位が環境によって異なる場合があります。ご注意ください。

※シェルを再起動させた時、WARNINGが出る場合は2行目をeval “$(pyenv init –path)”に変換してみてください。
(参考:pyenv(Github) issue #1906

シェルを再起動させます。
上記の変更が反映され、pyenvが使えるようになります。

1
exec $SHELL

確認のため、pyenvのバージョンを表示してください。
問題なくインストールされていれば、下記コマンドでバージョンが表示されます。

1
pyenv --version

2. Python3のインストール

まずは、Python3をインストールする前に、Python3に必要なモジュールをインストールします。

1
sudo yum install zlib-devel libffi-devel openssl-devel

続いて、インストールできるバージョンを確認します。
もしPython3.6.8以外を選ぶ場合はこちらの手順を参考にしてください。

1
pyenv install -l

それでは、指定されたバージョン(3.6.8)をインストールします。

1
pyenv install 3.6.8

少し時間が掛かるので注意が必要です。フリーズしているわけではありません。

それでは、インストールされたかどうかを確認します。
今回指定したバージョンが出力されればOKです。

1
pyenv versions

3. Python3に切り替える

Python2から3に切り替えます。

まずは現在のバージョンを確認します。
何もしていなければ2.7.5から変わっていないはずです。

1
python -V

続いて、下記でPythonのバージョンをGlobal環境で切り替えます。

1
pyenv global 3.6.8

※local(指定ディレクトリ以下)も可能です。

3.6.8に変わっているか確認します。

1
python -V

変わっていれば終了です!
おつかれさまでした。

追加でPIP(Pythonのパッケージ管理ソフト)をアップグレードをしておいてください。

1
pip install --upgrade pip

アップグレードしておかないと、必要なモジュールをインストールできない時があります。

おわりに

今回の方法以外で、venvを使わずにPython2と3を同じ環境に入れて切り替える方法もありますが、かなり面倒だったので今回はこちらの方法を使いました。

もし、Pythonで使いたいバージョンやモジュールのバージョンの組み合わせが複数通りあると困りますよね?
Pythonのバージョンだけなら、指定ディレクトリでpyenv local 3.X.Xのコマンドを打てばいいのですが、それではモジュールのバージョンは管理しきれません。
そのために、次は各々のアプリ用のモジュールバージョン管理用にvenvを導入していきます。

この記事は、VPSで作るPythonでのWebアプリ運用環境の連載記事です。
次は、5. Python仮想環境venvの導入です。

-Web制作, Python, VPS

執筆者:


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

関連記事

[Meisyo]練習難易度の不均衡是正への分析的アプローチ2

[Meisyo]練習難易度の不均衡是正への分析的アプローチから早3か月。 「練習ごとに難易度が違いすぎるんですけど!!」という不満は少しは解消されたかなー・・・ 効果測定してないのにわかるの?エスパー …

[Meisyo]ver0.04へのアップデート

Meisyoがバージョン0.04になりました。 バージョンNo.の基準はありません。(1.00(正式リリース)が遠い) 下記機能が0.04で追加されました。 目的としては、「ユーザがゲームを長く楽しめ …

【教材紹介】XAI(説明可能なAI)

今日では、さまざまなデータが収集され、判断の自動化や数値予測の高度化が行われています。 そのAIの判断、どう説明すればいいかわかりますか? エクセルのようなテーブルデータだけでなく、画像やテキストに対 …

no image

PHPのコーディング規則、PSRを学ぶ(1)

PHPはかなり自由に書けることが魅力なのですが「自由に書ける」=「独自化する」=「その人以外わからない」等式が成り立ってしまいます。 これは困った。 つまり、コーディング(コードの書き方)の一般的な規 …

[Meisyo]ビッグデータから学ぶ試合の基礎設計5

ここでは、「どのパラメータが打率等にどれくらい関係するのか」を理解することで強いチームを作る指針を記載しておきます。 [Meisyo]ビッグデータから学ぶ試合の基礎設計4の詳細版です。 今回は、右打と …

S