左坊のメモ帳

WordPress など

*

cloud9のpythonを3系にする(mvは使わず)

   

AWS Cloud9のpythonのバージョンを3.6にする方法です。

ググったところ、

$ sudo mv /usr/bin/python /usr/bin/python2
$ sudo ln -s /usr/bin/python3 /usr/bin/python
$ python —version

というやり方がぱっと見つかったので、自分もそうしようと思ったのですが、

念のため、/usr/bin/の状況を確認したところ、/usr/bin/python自体がシンボリックリンクだったので、なんとなく別のやり方を模索しました、という話です。

試行錯誤してしまった結果、他に2つの方法がありそうということが分かりましたが、
cloud9ですし、まぁ、とりあえず、(mvのやり方含め)どれでもよいと思っています。

スポンサーリンク

まずはAWS Cloud9のpreferences

ワークスペースの上部メニューのAWS Cloud9 > preferences を開き、Python Supportをクリックし、Python Version:を「Python3」にします。

最初の状況

まずは、/usr/bin/の状態を確認。

$ cd /usr/bin
$ ls -la python
python -> /etc/alternatives/python

次に、/etc/alternatives/の状態を確認。

$ cd /etc/alternatives
$ ls -la python
python -> /usr/bin/python2.7

この時点で、mvの方法は避けとこ、と思う。

alternativesとは?

さて、/etcにあるalternativesってなんだろう、ということで、

「aternatives コマンド」でググると、

「標準コマンドを切り替えることができるコマンド」

とのこと。

cloud9でhelpを確認。

$ alternatives –help
alternatives version 1.3.49.3 – Copyright (C) 2001 Red Hat, Inc.
This may be freely redistributed under the terms of the GNU Public License.

usage: alternatives –install <link> <name> <path> <priority>
[–initscript <service>]
[–slave <link> <name> <path>]*
alternatives –remove <name> <path>
alternatives –auto <name>
alternatives –config <name>
alternatives –display <name>
alternatives –set <name> <path>
alternatives –update <name> <path>
[–addslave <link> <name> <path>]*
[–removeslave <name> ]*
alternatives –refresh <name>

common options: –verbose –test –force –help –usage –version
–altdir <directory> –admindir <directory>

alternativesでpython3にするも、変わらず!?

alternativesでpythonのパスを/usr/bin/python3.6にするには、

$ sudo alternatives –set python /usr/bin/python3.6

とします。

そして実行後の確認。

$ python -V
Python 2.7.13

あれ?となりました。

alternatives –displayでpythonの状況を確認。

$ alternatives –display python
python – status is manual.
link currently points to /usr/bin/python3.6
/usr/bin/python2.7 – priority 27000
/usr/bin/python3.6 – priority 360

3.6を向いている(と思う)。

–configオプションでも確認(と念のため変更)。

$ sudo alternatives –config python

There are 2 programs which provide ‘python’.

Selection Command
———————————————–
* 1 /usr/bin/python2.7
+ 2 /usr/bin/python3.6

Enter to keep the current selection[+], or type selection number: 2

※最後の「2」を入力、enter。

$ python -V
Python 2.7.13

やっぱり変わらず。おかしい。

ちなみに、アスタリスクとプラスの意味は、

「+」現在選択されているプログラムの行に表示される。
「*」カーソルのようなもの。プログラムが複数登録されているとき、最もpriorityの高いものの行に表示される。

メモ: alternativesコマンドの動き(虎塚)

aliasのせいでした

どうしたものか考えていた時に、ふと打ったコマンド、

$ which python
alias python=’python27′
/usr/bin/python27

エイリアス!?

$ alias python
alias python=’python27′

ということで、

$ unalias python
$ alias python
bash: alias: python: not found
$ python -V
Python 3.6.2

無事、python3.6になりました。

まとめ

cloud9のpythonを3系にする方法は3つあります。(たぶん)

mvしてpython3にシンボリックリンクする方法

$ sudo mv /usr/bin/python /usr/bin/python2
$ sudo ln -s /usr/bin/python3 /usr/bin/python

alternativesでpython3を選択する方法

$ sudo alternatives –set python /usr/bin/python3.6
$ unalias python

aliasでpython3にする方法

$ alias python=’/usr/bin/python3.6′

今回は、alternativesで3.6に向けたので2番目(unalias python)にしておきました。

 - Python, Webサービス