最新版の Python を Ubuntu や LinuxMint で使いたい場合の方法を紹介する。
環境は fish-shell (Ver. 3.1.2) を想定している。
通常の pyenv もあるが、anyenv は pyenv も含め、他の言語環境構築もできるので採用した。
git をインストールする。
$ sudo apt install git
anyenv をインストールする (今回はホームディレクトリ直下にインストールする)。
$ git clone https://github.com/riywo/anyenv ~/.anyenv
エディタで、
$HOME/.config/fish/config.fish
に以下の行を追加する。
if [ -d $HOME/.anyenv ]
set -x PATH $HOME/.anyenv/bin $PATH
eval (anyenv init - fish | source)
end
シェルを再読込する。
$ exec fish -l
anyenv がインストールされたかチェックする。
$ anyenv -v
anyenv 1.1.1
anyenv のプラグインをインストールする。
$ mkdir -p ~/.anyenv/plugins
$ git clone https://github.com/znz/anyenv-update.git ~/.anyenv/plugins/anyenv-update
$ anyenv install --init
$ anyenv update
pyenv をインストールする。
$ mkdir ~/.anyenv/envs/
$ anyenv install pyenv
$ exec fish -l
pyenv がインストールされたかチェックする。
$ pyenv -v
pyenv 1.2.18-4-g5b009e87
運用に必要なライブラリをインストールする。
$ sudo apt install libffi-dev libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev
libffi-dev
: ModuleNotFoundError: No module named '_ctypes
' でインストールが失敗すると、再度 pyenv で python をインストールしなければならなくなるため。
libssl-dev
: Ignoring ensurepip failure: pip X.Y.Z requires SSL/TLS
でインストールが失敗する場合
zlib1g-dev
: zipimport.ZipImportError: can't decompress data; zlib not available
でインストールが失敗する場合
libbz2-dev
: Couldn't import standard bz2
でインストールが失敗する場合
その他のパッケージ
特定のバージョンの python をインストールする。
$ pyenv install -l
$ pyenv install 3.7.4
python がインストールされたか確認する。
pyenv versions
* system (set by /home/user/.anyenv/envs/pyenv/version)
3.7.4
Python のバージョンを切り替える。
$ pyenv local 3.7.4
$ python --version
Python 3.7.4
$ pyenv versions
system
* 3.7.4 (set by /home/user/.python-version)
仮想環境 (
test
) を導入する。
$ python -m venv test
$ . test/bin/activate.fish
-
手順 9 にあるように、一部の Python のモジュールには、apt でインストールしなければならないライブラリが必要となる。
もし、このライブラリがない状態で pyenv から Python をインストールすると、No module
エラーが出て、プログラムを動かすことができない。
上記の状態になった場合、ライブラリインストール後、pyenv でインストールした Python をアンインストールしてのインストールをしなければならない。
pandas
$ sudo apt install liblzma-dev
$ pip install pandas
Jupyter notebook
$ sudo apt install libsqlite3-dev libreadline6-dev libbz2-dev libssl-dev libsqlite3-dev libncursesw5-dev libffi-dev libdb-dev libexpat1-dev zlib1g-dev liblzma-dev libgdbm-dev libmpdec-dev
matplotlib
$ sudo apt install tk-dev