文書の過去の版を表示しています。
anyenv を用いた Python のインストール方法
概要
- 最新版の Python を Ubuntu や LinuxMint で使いたい場合の方法を紹介する。
- 環境は fish-shell (Ver. 3.1.2) を想定している。
- 基本的には、環境変数の書き換えでシェル環境が変わる程度だが、参考サイトには、bash 環境でのインストールも紹介されている。
- 通常の 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 - | source) end
- シェルを再読込する。
$ exec fish -l
source $HOME/.config/fish/config.fish
だとうまく環境変数が更新できないため、上のコマンドを実行する。
- 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
- このプラグインは *env をすべてアップデートする。
- 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 libbz2-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
- この後に、仮想環境で作業する。
- 仮想環境用のツールは test ディレクトリが生成されており、その中に含まれている。
- 仮想環境を終了する。
$ deactivate
その他
- pandas で利用するため、以下のパッケージをインストールした。
$ sudo apt install liblzma-dev $ pip install pandas