mk-mode BLOG

このブログは自作の自宅サーバに構築した Debian GNU/Linux で運用しています。
PC・サーバ構築等の話題を中心に公開しております。(クローンサイト: GitHub Pages
※2018年9月15日より非力な環境でサーバを運用しているため、各ページの表示に時間がかかる場合があります。ご了承ください。(改良の予定あり)

ブログ開設日2009-01-05
サーバ連続稼働時間
Reading...
Page View 合計
Reading...
今日
Reading...
昨日
Reading...

LMDE 2 - Python 3.6 インストール(ソースビルド)!

[ プログラミング ] [ LMDE2, Linux, Python ]

こんばんは。

汎用プログラミング言語 Python を LIME 2 へソースをビルドしてインストールする方法についての記録です。

0. 前提条件

  • LMDE 2 (Linux Mint Debian Edition 2; 64bit) での作業を想定。
  • デフォルトでインストールされている Python 2.7.9, 3.4.2 はアンインストールせず、Python 3.6.2 をインストールし、それらと共存させる。
    python, python3.4, python3.6 コマンドで使い分ける)
  • 「デフォルトでインストールされている Python をアンインストールすることはサーバ管理上悪影響を与えるので危険である」ということを理解しておく。

1. Python のバージョン確認

インストール済み(現状)の Python のバージョンを確認してみる。

1
2
3
4
5
$ python -V
Python 2.7.9

$ python3.4 -V
Python 3.4.2
  • オプションは --version でもよい。
  • pythonpython2 でもよい。
    python2python にシンボリックリンクが張られているので)
  • python3.4python3 でもよい。
    python3python3.4 にシンボリックリンクが張られているので)

2. アーカイブのダウンロード&展開

こちら から最新安定版(当記事執筆時点では 3.6.2)のアーカイブ(今回は tgz 版)をダウンロード・展開する。

1
2
$ wget https://www.python.org/ftp/python/3.6.2/Python-3.6.2.tgz
$ tar zxvf Python-3.6.2.tgz

3. ビルド&インストール

1
2
3
4
$ cd Python-3.6.2
$ ./configure
$ make -j$(grep '^processor' /proc/cpuinfo | wc -l)
$ sudo make altinstall

make install だと既存の python3 を破壊してしまうかもしれないため、 make altinstallpython3.6 のみ生成するようにしている。

4. pip の更新

念の為、 pip を最新版に更新しておく。

1
2
# pip3.6 install --upgrade pip
Requirement already up-to-date: pip in /usr/local/lib/python3.6/site-packages

5. pip.conf の作成

1
# pip3.6 list

を実行した際に、

1
2
3
DEPRECATION: The default format will switch to columns in the future.
You can use --format=(legacy|columns) (or define a format=(legacy|columns)
in your pip.conf under the [list] section) to disable this warning.

と非推奨の警告が出力されるので、以下の内容で “pip.conf” を作成する。(全ユーザ共通で設定したい場合)

/etc/pip.conf
1
2
[list]
format=columns
  • columnslegacy でもよい。(自分の好みに合わせる)
  • ユーザ別に設定したい場合、ファイルは $HOME/.config/pip/pip.conf

6. インストールの確認

1
2
3
4
5
# python3.6 -V
Python 3.6.2

# pip3.6 -V
pip 9.0.1 from /usr/local/lib/python3.6/site-packages (python 3.6)

7. 動作確認

対話形式で確認してみる。(ユークリッドの互除法で再帰的に最大公約数を求めてみる)
(対話形式を終了するには CTRL-D

1
2
3
4
5
6
7
8
9
10
11
12
13
# python3.6
Python 3.6.2 (default, Aug 29 2017, 23:23:38)
[GCC 4.9.2] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> def gcd(a, b):
...     if b == 0:
...         return a
...     else:
...         return gcd(b, a % b)
...
>>> print("TheGCD for (123, 45): %d" %(gcd(123, 45)))
TheGCD for (123, 45): 3
>>>

上記と同じことをファイルを作成して実行してみる。

gcd.py
1
2
3
4
5
6
7
8
9
#!/usr/local/bin/python3.6

def gcd(a, b):
    if b == 0:
        return a
    else:
        return gcd(b, a % b)

print("The GCD for (123, 45): %d" %(gcd(123, 45)))
  • Python 3 系では、デフォルトでエンコードが UTF-8 になっているので、 coding: utf-8 は不要。
1
2
3
$ chmod +x gcd.py
$ ./gcd.py
The GCD for (123, 45): 3

8. 参考サイト


以上。

Comments