Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
7
Help us understand the problem. What is going on with this article?
@Sakieda

いまさらながら、Python3.7をCentOS/RHEL 7に導入する。

More than 1 year has passed since last update.

事前準備

下記コマンドを実行して、各パッケージを導入する

yum install gcc openssl-devel bzip2-devel libffi-devel

libffi-develは、7.3.1以降でインストール時に必要なパッケージ

インストールするソースコード

Pythonの公式から拾ってくる。
Python.org:https://www.python.org/ftp/python/3.7.1/Python-3.7.1.tgz

ソースコードを展開

ここでは、次の場所に展開します。
ソースコード:/usr/local/src/Python-3.7.x
インストール先:/usr/local/Python3.7/default
※今後バージョンを変更することを考えてシンボリックリンク経由でインストールする
保存先:/usr/local/Python-3.7.1

展開~インストールまで

ファイルを解凍し回答先へ移動

mkdir /usr/local/src/Python-3.7.1
tar xzf Python-3.7.1.tgz -C /usr/local/src/Python-3.7.1
cd /usr/local/src/Python-3.7.1

バージョン変更を容易にするためのシンボリックファイル作成

mkdir /usr/local/Python3.7/Python-3.7.2rc1
ln -s /usr/local/Python3.7/Python-3.7.2rc1 /usr/local/Python3.7/latest
ln -s /usr/local/Python3.7/latest /usr/local/Python3.7/default

インストール

command
cd /usr/local/src/Python-3.7.1
./configure --enable-optimizations --prefix=/usr/local/Python3.7/default
make -j4
make altinstall

※ make の-jオプションはコンパイル時のCPUの数を指定できる、複数あるなら複数個指定、無いなら-jを付与しないで実行

pipを使えるようにする

Pythonのモジュールを管理するツールにpipがあり、ほぼ必須といえる。3.4系以降のpythonを導入した場合は、pipが自動でインストールされるが、今回の方法だとパスが通らないので、次の手順を実施する。

echo "export PATH="/usr/local/Python3.7/default/bin:$PATH"" >> /etc/profile
ln -s /usr/local/Python3.7/default/bin/pip3.7 /usr/local/Python3.7/default/bin/pip

以下のコマンドを実行して、バージョンが出力されるか確認する

# pip -V
pip 10.0.1 from /usr/local/Python/lib/python3.7/site-packages/pip (python 3.7)

pythonのバージョンを確認する。

# su -
# python --version
Python 3.7.1
  • Python 2.7.x と表示された場合 その環境には、別なpythonが導入されているため、そっちにパスが通っています。 ので、python3用のパスを通します。下記コマンドを実行してください。
ln -s /usr/local/Python3.7/default/bin/python3.7 /usr/local/Python3.7/default/bin/python
ln -s /usr/local/Python3.7/default/bin/python /usr/local/bin/python
ln -s /usr/local/Python3.7/default/bin/python /usr/local/bin/python3
  • 使用可能なモジュールを確認しつつ、インストールが出来たか確認 下記を記述して実行する。
# cat help_modules.py
# -*- coding: utf-8 -*-
# prints a list of existing modules
print(help('modules'))

実行する。現在使用可能なモジュール一覧がでてくればインストール成功

# python help_modules.py

Please wait a moment while I gather a list of all available modules...
/usr/lib64/python2.7/site-packages/gobject/constants.py:24: Warning: g_boxed_type_register_static: assertion 'g_type_from_name (name) == 0' failed
  import gobject._gobject
BaseHTTPServer      cProfile            inspect             rpmUtils
Bastion             cStringIO           io                  runpy
CDROM               calendar            ipaddress           sched
CGIHTTPServer       cgi                 itertools           schedutils
ConfigParser        cgitb               json                select
Cookie              chunk               keyword             selinux
DLFCN               cmath               lib2to3             sets
DocXMLRPCServer     cmd                 liblzma             setuptools
:(以下略)
7
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Sakieda

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
7
Help us understand the problem. What is going on with this article?