AWS Cloud9のアカウントをまだ作成していない方は先にこちらの記事で作成しておいてください。
IDEを開くと、下部にコンソールが表示されています。
ec2-user:~/environment $
となっているところですね。
まずはデフォルトのPythonのバージョンを表示してみましょう。
コンソールで以下のように入力してEnterを押してください。
ec2-user:~/environment $ python -V
バージョンは2.7.14のようですね。
では、Python3のバージョンも見てみましょう。
ec2-user:~/environment $ python3 -V
Python3のバージョンは3.6.5ですね。
次に、Python、Python3それぞれの場所を確認しましょう。whichコマンドは実行コマンドのフルパスを表示します。
ec2-user:~/environment $ which python
Pythonの場所は「/usr/bin/python27」となっていますね。
また、エイリアスも設定されているのが分かります。エイリアスとは別名で登録している、ということです。つまり、python本体は「python27」というコマンドが正しいコマンド名なのですが、「python」と書いても「python27」が実行されるようになる、ということです。
試しに下記コマンドを実行してみてください。先ほどと同様に2.7.14と表示されたかと思います。
ec2-user:~/environment $ python27 -V
次にpython3の場所を確認しましょう。
ec2-user:~/environment $ which python3
Python3の場所は「/usr/bin/python3」となっていますね。
さて、では標題の通り、「デフォルトのpythonをpython3に変更」しましょう。今はpythonを実行すると、上記の通りエイリアスが働き、python27が実行されます。
ということで、エイリアスを書き換えることにしましょう。コンソールに下記入力して、エイリアスが設定されているコマンドを全て表示してみましょう。
ec2-user:~/environment $ alias
pythonは’python27'となっていますね。このエイリアスの設定は、「~./bashrc」にあります。このファイルを編集します。
ec2-user:~/environment $ cd ec2-user:~ $ vi .bashrc
以下のように「~/.bashrc」ファイルが表示されます。
# .bashrc export PATH=$PATH:$HOME/.local/bin:$HOME/bin # load nvm export NVM_DIR="$HOME/.nvm" [ "$BASH_VERSION" ] && npm() { # hack: avoid slow npm sanity check in nvm if [ "$*" == "config get prefix" ]; then which node | sed "s/bin\/node//"; else $(which npm) "$@"; fi } # [ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # This loads nvm rvm_silence_path_mismatch_check_flag=1 # prevent rvm complaints that nvm is first in PATH unset npm # end hack # User specific aliases and functions alias python=python27 # modifications needed only in interactive mode if [ "$PS1" != "" ]; then # Set default editor for git git config --global core.editor /usr/bin/nano # Turn on checkwinsize shopt -s checkwinsize # keep more history shopt -s histappend export HISTSIZE=100000 export HISTFILESIZE=100000 export PROMPT_COMMAND="history -a;" # Source for Git PS1 function if ! type -t __git_ps1 && [ -e "/usr/share/git-core/contrib/completion/git-prompt.sh" ]; then . /usr/share/git-core/contrib/completion/git-prompt.sh fi # Cloud9 default prompt _cloud9_prompt_user() { if [ "$C9_USER" = root ]; then echo "$USER" else echo "$C9_USER" fi }
下記部分がエイリアスの設定ですので、この行をコメントアウトします。
alias python=python27
↓このように修正
# alias python=python27 alias python=python36
「ESC」キーでコマンドモードに遷移、「:wq」で保存して終了。
下記コマンドで、修正した内容を反映します。
ec2-user:~ $ source .bashrc
エイリアスが変わったかを確認してみましょう。
ec2-user:~/environment $ alias alias egrep='egrep --color=auto' alias fgrep='fgrep --color=auto' alias grep='grep --color=auto' alias l.='ls -d .* --color=auto' alias ll='ls -l --color=auto' alias ls='ls --color=auto' alias python='python36' alias rvm-restart='rvm_reload_flag=1 source '\''/usr/local/rvm/scripts/rvm'\''' alias vi='vim' alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
python36になっていますね。
では、pythonのバージョンを表示してみましょう。
ec2-user:~/environment $ python -V Python 3.6.5
3.6.5になりましたね。
もう1つ設定をしておきましょう。左上にある「AWS Cloud9」をクリックし、「Preferences」をクリックしてください。
すると、下記Project Settingsが表示されます。下にスクロールすると「Python Support」があり、「Python Version:」を選択出来ますので、Python3を選択しましょう。
最後にもう1つです。以下をコマンドで打つと、pythonに関連付けられたプログラムが2つあることが分かります。今は
「1 /usr/bin/python2.7」が選択されているので、
「2 /usr/bin/python3.6」を選択しましょう。
ec2-user:~/environment $ sudo update-alternatives --config python
以上でPython3で実行されるようになりました。
ついでに、pip3もやっておきましょう。
ec2-user:~/environment $ sudo ln -s /usr/bin/pip-3.6 /usr/bin/pip3