「AWSCloud9」の環境設定。Pythonのバージョンが「2.7」から「3.*系」に設定から変えても変わらない場合の対処法 アラフォーからのプログラム事始め
今日から実際に「AWSCloud9」でPythonの勉強を開始しました。午前中に考えたPythonの勉強の進め方と午後にハマった「AWSCloud9」での「Pythonのバージョン」のアップデート方法についてメモしておきます。
アラフォープログラム事始め Python勉強の進め方
1.ドットインストールでPythonの文法を覚える 期間:7日間
有名ですし無料枠だけで受けてみてもわかりやすかったので、Pythonのお作法をドットインストールで覚えようと決めました。
2.サーバーレスアプリケーション開発ガイドでLamdaとPythonの動きを覚える 期間:2週間くらい
Pythonでやってみたいことがピンポイントで書かれていたので購入しました。
実践的で良い感じです。実際にLambdaやAPIゲートウェイを利用しての作成ができて頭に入ってきそうな予感がしています。
3.ブログを読みながら業務でPythonを書く 期間:2週間
実際に手を動かしてなんぼなので。実践あるのみ。
3週間くらいはインプット中心⇒その後は作りたいものを手真似で作る様にしていこうと考えています。
そして今日やったことは、AWS Cloud9の初期設定。さっそくですがつまづきました(笑)
つまづいたのがPythonのバージョン上げ。2.7から3.6に上げるのに2時間かかりました。。。
AWS Cloud9の初期設定ではPythonのバージョンが「2.7」だったので、早速ブログをいくつかチェックしてバージョンあげを試したのですがうまくいきませんでした。
おそらくAWS買収前のCloud9の設定みたいで、現状のAWSCloud9下ではNGでした。
結果、2時間かけてバージョン3.6に上げることはできましたので以下方法はメモしておきます。
1.ダッシュボードでPythonの設定を「Python3」に設定
ダッシュボードの設定を変えます。
2.AWS Cloud9でターミナルWindowを立ち上げます。
画面下部にあるターミナルを選択して色々インストールしていきます。
3.pipの最新版をインストール
まずpipは最新にしておきます。
sudo python -m pip install --upgrade pip
4.~/.bashrcの alias python をpython36に変更。
「3」までの手順だけではバージョンは切り替わりません。
~/.bashrcのエイリアス設定を変更します。
~/environment $ cat ~/.bashrc
catでみた状態。
# .bashrc
export PATH=$PATH:$HOME/.local/bin:$HOME/bin
# load nvm
export NVM_DIR="/home/ec2-user/.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
}
PS1='\[\033[01;32m\]$(_cloud9_prompt_user)\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]$(__git_ps1 " (%s)" 2>/dev/null) $ '
fi
viで以下の箇所を変更します。
vi ~/.bashrc
alias python=python27
↓
alias python=python36
5.「.bashrc」の再読み込みを実施
sourceコマンドで再読込を行う。
source ~/.bashrc
6.Pythonのバージョンの確認
ここまででPythonのバージョンは3.6.2まであがりました。
python --version
Python 3.6.2
ただ、pip -VをやるとPython2.7がまだ表示されます。なので以下のコマンドを行いました。
7.update-alternativesを実行
以下を実行します。
sudo update-alternatives --config python
上記の実施で、pip で出てくるpythonのバージョンも3.6にあがりました。
~/environment $ pip -V
pip 9.2.1 from /usr/lib/python3.6/dist-packages (python 3.6)
ただ、上記やってもなお、awscli で連携しているpythonのバージョンは2.7のままでした。元々インストールされているのがいけてないのか?と思いアンインストール⇒再インストールを実施しました。
8.AWS CLI をアンインストールする必要がある場合は、pip uninstall を使用します。
$ pip uninstall awscli
$ pip install awscli
再インストールして、バージョンの確認。
~/environment $ aws --version
aws-cli/1.14.59 Python/3.6.2 Linux/4.9.81-35.56.amzn1.x86_64 botocore/1.9.12
以上で、「AWSCloud9」のバージョンが3.6になりました。
ちなみに上記の設定はRootユーザー権限で設定しましょう。
Pythonのバージョン設定でつまずいている方は参考にしてみてください。
バッドノウハウ
以下のようなエラーが出ているときは「sudo」コマンドを忘れている可能性有りです。
Exception:
Traceback (most recent call last):
File "/usr/local/lib/python3.6/site-packages/pip/basecommand.py", line 215, in main
status = self.run(options, args)
File "/usr/local/lib/python3.6/site-packages/pip/commands/install.py", line 342, in run
prefix=options.prefix_path,
File "/usr/local/lib/python3.6/site-packages/pip/req/req_set.py", line 784, in install
**kwargs
File "/usr/local/lib/python3.6/site-packages/pip/req/req_install.py", line 851, in install
self.move_wheel_files(self.source_dir, root=root, prefix=prefix)
File "/usr/local/lib/python3.6/site-packages/pip/req/req_install.py", line 1064, in move_wheel_files
isolated=self.isolated,
File "/usr/local/lib/python3.6/site-packages/pip/wheel.py", line 345, in move_wheel_files
clobber(source, lib_dir, True)
File "/usr/local/lib/python3.6/site-packages/pip/wheel.py", line 316, in clobber
ensure_dir(destdir)
File "/usr/local/lib/python3.6/site-packages/pip/utils/__init__.py", line 83, in ensure_dir
os.makedirs(path)
File "/usr/lib64/python3.6/os.py", line 220, in makedirs
mkdir(name, mode)
PermissionError: [Errno 13] Permission denied: '/usr/lib/python3.6/dist-packages/awscli-1.14.59.dist-info'
2018/03/21の進捗
ドットインストールでの無料分の授業まで完了。