CentOS7にPythonをインストールしてみる
pythonのインストール
CentOS7には、最初からPythonがインストールされている。
ただ、入ってるバージョンは「2.7.5」
$ python --version Python 2.7.5 $ which python /usr/bin/python
Pythonの3系は、yumで別途インストールできる。
(CentOS 7.7からリポジトリ追加せずにできるようになったみたい)
$ sudo yum -y install python3 $ python3 --version Python 3.6.8 $ which python3 /usr/bin/python3 $ python --version Python 2.7.5
ついでに、pip3もインストールされる。
$ pip3 --version pip 9.0.3 from /usr/lib/python3.6/site-packages (python 3.6) $ which pip3 /usr/bin/pip3
pipでライブラリをインストール
下記のコマンドでインストールできる。
$ sudo pip3 install pytz $ ls /usr/local/lib/python3.6/site-packages/ pytz pytz-2020.4.dist-info
ユーザー権限でインストールしたい場合は「--user」を付ける。
$ pip3 install --user tqdm $ ls /home/vagrant/.local/lib/python3.6/site-packages/ tqdm tqdm-4.51.0.dist-info
インストール済みのライブラリはlistで確認できる。
(なぜか「--format=columns」を付けないと警告がでるので付けてる)
$ pip3 list --format=columns Package Version ---------- ------- pip 9.0.3 pytz 2020.4 setuptools 39.2.0 tqdm 4.51.0
補足
tオプションで指定のディレクトリにインストールすることもできる。
$ pip3 install tqdm -t /home/vagrant/tmp/
ただ、インストールするだけでは、認識されず、
$ pip3 list --format=columns Package Version ---------- ------- pip 9.0.3 setuptools 39.2.0
環境変数PYTHONPATHにパスを設定する必要があるみたい。
$ echo 'export PYTHONPATH="/home/vagrant/tmp:$PYTHONPATH"' >> ~/.bash_profile $ source ~/.bash_profile $ pip3 list --format=columns Package Version ---------- ------- pip 9.0.3 setuptools 39.2.0 tqdm 4.51.0
pythonのインストール(pyenvを使った場合)
pyenvのインストールに必要なものを入れておく。
$ sudo yum -y install git
公式の手順(https://github.com/pyenv/pyenv#installation)に沿ってインストール。
$ git clone https://github.com/pyenv/pyenv.git ~/.pyenv $ echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile $ echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile $ echo -e 'if command -v pyenv 1>/dev/null 2>&1; then\n eval "$(pyenv init -)"\nfi' >> ~/.bash_profile
反映すると、pyenvがインストールされているのが確認できる。
$ source ~/.bash_profile $ pyenv --version pyenv 1.2.21 $ which pyenv ~/.pyenv/bin/pyenv
pyenvでインストールする前に、必要になりそうなものを入れておく。
$ sudo yum install openssl-devel bzip2-devel readline-devel sqlite-devel
pyenvで、最新のpythonをインストール。
$ pyenv install 3.9.0
インストールしただけでは、バージョンは変わらない。
$ python --version Python 2.7.5 $ which python ~/.pyenv/shims/python $ pyenv versions * system (set by /home/vagrant/.pyenv/version) 3.9.0
バージョンを変えるには、globalで指定する必要あり。 あと、よく分かってないが、rehashも必要。
$ pyenv global 3.9.0 $ pyenv rehash
これで、指定したバージョンが有効になる。
$ python --version Python 3.9.0 $ pyenv versions system * 3.9.0 (set by /home/vagrant/.pyenv/version) $ cat /home/vagrant/.pyenv/version 3.9.0