概要
Ubuntu20.04に脱Anacondaのpython環境を作る必要がでてきたが、【インストールメディアを用いて作成した】まっさらなUbuntuへの環境構築に少々てこずったのでメモを残しておく。
参考にしたサイトは末尾に記載。
作業項目
- ライブラリのインストール
- pyenvのインストール
- 環境変数の設定
- OS標準のpythonコマンドへのシンボリックリンク作成
- pythonのインストール
- pythonバージョンの切り替え
ライブラリインストール
各種ライブラリをインストールする。
sudo apt install git gcc make zlib1g-dev libffi-dev libbz2-dev libssl-dev libreadline-dev libsqlite3-dev python3-tk tk-dev
pyenvのインストール
pyenvをホームディレクトリにインストール。
git clone https://github.com/pyenv/pyenv.git ~/.pyenv
git clone https://github.com/pyenv/pyenv-update.git ~/.pyenv/plugins/pyenv-update
環境変数の設定
ホームディレクトリ直下の.bash_profileに、pyenv用の環境変数を追記する。
.bash_profileは、なければ作成する。
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# for pyenv(python)
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init --path)"
はじめ、eval行の引数に「-」(ハイフン)を指定していたのだが、「--path)」に変更したら後述するpythonバージョン切り替えができるようになった。ここで2時間くらい無駄にしてしまった。。
OS標準のpythonコマンドへのシンボリックリンク作成
Ubuntu20.04標準のpythonは「/usr/bin/python3」しかなく「python」コマンドが通らないため、pyenvでのpython切り替え(systemへの切り替え)がうまくいかないことがある模様。そのため、pythonコマンドが通るようにシンボリックリンクを作成する。
ln -s /usr/bin/python3 /usr/bin/python
参考サイト(githubのissue)には下記のworkaroundも書いてあった。どちらの対応でもよさそう。
sudo apt install python-is-python3
pythonのインストール
今回は、2021/7/13時点で最新の3.9.6をインストールする。
pyenv install 3.9.6
pythonバージョンの切り替え
python3.9.6への切り替え。
pyenv global 3.9.6
pyenv rehash
pyenv versions
system
* 3.9.6 (set by PYENV_VERSION environment variable)
別コマンドでもpythonバージョンを確認。
python --version
Python 3.9.6
ちゃんと3.9.6に切り替わっていることが確認できたらOK。
このあとは、pipenvインストールして仮想環境を作ってと。
以上。
参考サイト
Python 3.xの環境構築【Ubuntu 20.04】
https://note.com/mokuichi/n/n627eb6773aad
pyenv(github)
https://github.com/pyenv/pyenv
pyenv(github -> issue)
https://github.com/pyenv/pyenv/issues/1613