文書の表示以前のリビジョンバックリンク文書の先頭へ この文書は読取専用です。文書のソースを閲覧することは可能ですが、変更はできません。もし変更したい場合は管理者に連絡してください。 ====== anyenv を用いた Python のインストール方法 ====== ===== 概要 ===== * 最新版の Python を Ubuntu や LinuxMint で使いたい場合の方法を紹介する。 * 環境は fish-shell (Ver. 3.1.2) を想定している。 * 基本的には、環境変数の書き換えでシェル環境が変わる程度だが、参考サイトには、bash 環境でのインストールも紹介されている。 * 通常の pyenv もあるが、anyenv は pyenv も含め、他の言語環境構築もできるので採用した。 ===== 手順 ===== - git をインストールする。\\ <code bash>$ sudo apt install git</code> - anyenv をインストールする (今回はホームディレクトリ直下にインストールする)。\\ <code bash>$ git clone https://github.com/riywo/anyenv ~/.anyenv</code> - エディタで、''$HOME/.config/fish/config.fish'' に以下の行を追加する。\\ <code bash> if [ -d $HOME/.anyenv ] set -x PATH $HOME/.anyenv/bin $PATH eval (anyenv init - fish | source) end </code> - シェルを再読込する。\\ <code bash>$ exec fish -l</code> * ''source $HOME/.config/fish/config.fish'' だとうまく環境変数が更新できないため、上のコマンドを実行する。 - anyenv がインストールされたかチェックする。\\ <code bash>$ anyenv -v anyenv 1.1.1</code> - <del>anyenv のプラグインをインストールする。</del>\\ <code bash> $ mkdir -p ~/.anyenv/plugins $ git clone https://github.com/znz/anyenv-update.git ~/.anyenv/plugins/anyenv-update $ anyenv install --init $ anyenv update </code> * このプラグインは *env をすべてアップデートする。 * 上記プラグインが使えないようなので、*env のアップデートには、以下のコマンドで対応する (2021/11/30 追記)。\\ <code bash>$ anyenv install --update</code> - pyenv をインストールする。\\ <code bash> $ mkdir ~/.anyenv/envs/ $ anyenv install pyenv $ exec fish -l </code> - pyenv がインストールされたかチェックする。\\ <code bash> $ pyenv -v pyenv 1.2.18-4-g5b009e87 </code> - 運用に必要なライブラリをインストールする。\\ <code bash> $ sudo apt install libffi-dev libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev </code> * ''libffi-dev'': ''ModuleNotFoundError: No module named '_ctypes''' でインストールが失敗すると、再度 pyenv で python をインストールしなければならなくなるため。 * ''libssl-dev'': ''Ignoring ensurepip failure: pip X.Y.Z requires SSL/TLS'' でインストールが失敗する場合 * 参考サイト: [[https://7me.oji.0j0.jp/2018/01/23/pyenv-ignoring-ensurepip-failure/|Ignoring ensurepip failure: pip 8.1.1 requires SSL/TLSを解決するメモ | 7me]] * ''zlib1g-dev'': ''zipimport.ZipImportError: can't decompress data; zlib not available'' でインストールが失敗する場合 * 参考サイト: [[https://qiita.com/banaoh/items/00aea13fe045fab7e8ba|【pyenv】ubuntu16.04でのpython環境の構築 - Qiita]] * ''libbz2-dev'': ''Couldn't import standard bz2'' でインストールが失敗する場合 * 参考サイト: [[https://www.chazine.com/archives/3613|PythonでNo module named bz2 | 今日のひとこと]] * その他のパッケージ * 参考サイト: [[https://obel.hatenablog.jp/entry/20161225/1482623903|Python 3.6.0 をインストールする際に出てくる警告に対処する(Ubuntu 16.04 LTS) - 約束の地]] - 特定のバージョンの python をインストールする。\\ <code bash> $ pyenv install -l $ pyenv install 3.7.4 </code> - python がインストールされたか確認する。\\ <code bash> pyenv versions * system (set by /home/user/.anyenv/envs/pyenv/version) 3.7.4 </code> - Python のバージョンを切り替える。\\ <code bash> $ pyenv local 3.7.4 $ python --version Python 3.7.4 $ pyenv versions system * 3.7.4 (set by /home/user/.python-version) </code> - 仮想環境 (''test'') を導入する。\\ <code bash> $ python -m venv test $ . test/bin/activate.fish </code> * この後に、仮想環境で作業する。 * 仮想環境用のツールは test ディレクトリが生成されており、その中に含まれている。 - 仮想環境を終了する。\\ <code bash>$ deactivate</code> ===== 運用に必要なライブラリ ===== * 手順 9 にあるように、一部の Python のモジュールには、apt でインストールしなければならないライブラリが必要となる。 * もし、このライブラリがない状態で pyenv から Python をインストールすると、''No module'' エラーが出て、プログラムを動かすことができない。 * 上記の状態になった場合、ライブラリインストール後、pyenv でインストールした Python をアンインストールしてのインストールをしなければならない。 ==== pandas ==== <code bash> $ sudo apt install liblzma-dev $ pip install pandas </code> ==== Jupyter notebook ==== <code bash> $ 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 </code> * 参考サイト: [[https://qiita.com/kazetof/items/adeb331c99d408853f07 | pyenv, pipenv 環境でjupyter notebook使う時にsqliteに関するエラーが出たとき - Qiita]] ==== matplotlib ==== <code bash> $ sudo apt install tk-dev </code> * 参考サイト: [[https://qiita.com/4hiziri/items/aba80f0bc92300ea22e2|PythonでTkinterがimportできなかった - Qiita]] ===== 参考サイト ===== * [[https://cloudpack.media/42033 | Macでanyenvをつかってpython環境構築(bash、fish対応) | cloudpack.media]] * [[https://hi120ki.github.io/blog/posts/20190125/ | fish shell での anyenv 設定法 | Hi120kiのメモ]] * [[https://www.mathpython.com/ja/375-ctypes/ | CentOS 7のPython 3.7.5はなぜかModuleNotFoundError: No module named ‘_ctypes’が出る - MathPython]] python/anyenv_を用いた_python_のインストール方法.txt 最終更新: 2021/11/30 12:02by mumeiyamibito