さあPython入れっか。
と思い立ったので
MySQL勉強用に立ててたcentosの仮想環境にpythonぶちこモーって思ったので備忘録
今まではanacondaポーン入れて、jupyter notebookでカリカリカリって勉強してたけど
要るわ。
って思いました。
まずはpyenvのインストール!
(そもそもpyenvって何?)
(簡単な話、Pythonのバージョンを切り分けて運用できますよ的なツール。rbenvからの影響)
とりあえずリポジトリをクローン
$ git clone git://github.com/yyuu/pyenv.git ~/.pyenv
そしてパス通しておいて
$ echo 'export PATH="$HOME/.pyenv/bin:$PATH"' >> ~/.bash_profile
$ echo 'eval "$(pyenv init -)"' >> ~/.bash_profile
$ source ~/.bash_profile
バージョン確認、と。
$ pyenv --version
pyenv 1.2.14-8-g0e7cfc3b
ハイハイ、順調順調。
んじゃあ、Python入れっか。
とりあえずデフォで何が入っているか見ておいて
$ python --version
Python 2.7.5
ほうほう、で
pyenv君は今何が入れられるの?
$ pyenv install --list
Available versions:
2.1.3
2.2.3
2.3.7
2.4.0
2.4.1
2.4.2
2.4.3
2.4.4
・・・
3.7.4
3.7.5
3.7.5rc1
3.8.0
3.8-dev
3.9-dev
activepython-2.7.14
・・・
(めっちゃ長い)
ふーん、やるやん?
じゃあとりあえず新しいやつを、、、
$ pyenv install 3.8.0
Downloading Python-3.8.0.tar.xz...
-> https://www.python.org/ftp/python/3.8.0/Python-3.8.0.tar.xz
Installing Python-3.8.0...
BUILD FAILED (CentOS Linux 7 using python-build 1.2.14-8-g0e7cfc3b)
Inspect or clean up the working tree at /tmp/python-build.20191021131652.2819
Results logged to /tmp/python-build.20191021131652.2819.log
Last 10 log lines:
return _bootstrap(
File "/tmp/python-build.20191021131652.2819/Python-3.8.0/Lib/ensurepip/__init__.py", line 119, in _bootstrap
return _run_pip(args + [p[0] for p in _PROJECTS], additional_paths)
File "/tmp/python-build.20191021131652.2819/Python-3.8.0/Lib/ensurepip/__init__.py", line 27, in _run_pip
import pip._internal
File "<frozen zipimport>", line 241, in load_module
File "<frozen zipimport>", line 709, in _get_module_code
File "<frozen zipimport>", line 570, in _get_data
zipimport.ZipImportError: can't decompress data; zlib not available
make: *** [install] エラー 1
いつものごとくエラー。
初学者はここからが戦いの始まりであり
インストールである?
zlibありませんやん。
Results logged to /tmp/python-build.20191021131652.2819.log
ってあるからとりあえずここ見にいく。
必要もなく
zipimport.ZipImportError: can't decompress data; zlib not available
zlibありませんやん。
そういえば依存パッケージとかなんも確認してないので
pyenv公式wikiで確認。
$ yum install gcc zlib-devel bzip2 bzip2-devel readline-devel sqlite sqlite-devel openssl-devel tk-devel libffi-devel
おし、あと何か違和感あるなーって思ってたんで
前に何か違和感を感じていて、参考にしていたいくつかの記事を見返すと
そもそもパス俺あれ、bashじゃなないし、zshだし、、、
$ echo 'export PATH="$HOME/.pyenv/bin:$PATH"' >> ~/.zshrc
$ echo 'eval "$(pyenv init -)"' >> ~/.zshrc
$ source ~/.zshrc
修正
そしてもう一度インストール
$ pyenv install 3.8.0
・・・
Installed Python-3.8.0 to /home/vagrant/.pyenv/versions/3.8.0
よし、と。
あとはこのversion使いますよーって指定
$ pyenv global 3.8.0
ちなみに、特定のディレクトリだけに適用したいんならglobalのとこをlocalにするオプションもあるんだとか。
作業ディレクトリ以下にバージョンが設定されるからglobalよりも優先されるとか。
で、確認。
$ python --version
Python 3.8.0
たいへんよくできました。
参考にさせていただきました。
https://qiita.com/1000ch/items/93841f76ea52551b6a97
https://qiita.com/Kodaira_/items/feadfef9add468e3a85b
今回は使わなかったけどMojavaにあげたときはこんなこともあったとか
[[MacOS Mojave]pyenvでpythonのインストールがzlibエラーで失敗した時の対応]
(https://qiita.com/zreactor/items/c3fd04417e0d61af0afe)