Help us understand the problem. What is going on with this article?

pyenvでpython環境構築

さあ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エラーで失敗した時の対応

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした