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のやり方含め)どれでもよいと思っています。
[adsense]
目次
まずは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ってなんだろう、ということで、
「標準コマンドを切り替えることができるコマンド」
とのこと。
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の高いものの行に表示される。
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)にしておきました。
コメント