development:language:python:pyenv:centos
文書の過去の版を表示しています。
目次
CentOS
このページについて
インストール記録
- OS:CentOS7
- shell:bash
- 各自のhomeディレクトリにインストールするものとした
pyenvは複数のpythonバージョンを保持できる。
pyenv-virtualenvは同一バージョンのpythonでライブラリなどを別に保持できる1)
事前準備
$ sudo yum install gcc zlib-devel bzip2 bzip2-devel readline readline-devel sqlite sqlite-devel openssl openssl-devel git
インストール
$ git clone https://github.com/yyuu/pyenv.git ~/.pyenv $ git clone https://github.com/yyuu/pyenv-virtualenv.git ~/.pyenv/plugins/pyenv-virtualenv
設定
# (末尾に入力)
- .bashrc
# for pyenv if [ -e "${HOME}/.pyenv/bin/pyenv" ]; then echo '>> Exist pyenv' export PYENV_ROOT="${HOME}/.pyenv" export PATH=${PYENV_ROOT}/bin:$PATH eval "$(pyenv init -)" eval "$(pyenv virtualenv-init -)" else echo '>> NO INSTALL pyenv' fi
設定のリロード
# source $HOME/.bashrc
python環境の構築
インストール可能なpythonのリスト
# pyenv install --list
python2.7.15をインストール2)
# pyenv install 2.7.15
python3.7.2をインストール3)
# pyenv install 3.7.2
まだ、pyenv内に準備されているだけで、systemのpythonが使われています
$ pyenv versions * system (set by ~/.pyenv/version) 2.7.15 3.7.2
環境ごとにディレクトリを作成(local)
# mkdir ~/tmp/python # cd ~/tmp/python
python環境の構築
# pyenv local 2.7.15
確認
# pyenv local # <= このディレクトリに設定されたpythonの表示 2.7.15 # pyenv versions # <= インストール済みのpythonの表示((*で現在のものを指している)) system * 2.7.15 (set by /home/xxxxxx/.pyenv/version) 3.6.3 # python -V Python 2.7.15 # cd ~ # python -V Python 3.7.2
同じpythonバージョンで、別環境の構築
モジュールも別になります
# pyenv virtualenv 3.6.3 Flask-3.6.3 ↑バージョン ↑環境名
環境ごとにディレクトリを作成(local)
# mkdir ~/tmp/python-flask # cd ~/tmp/python-flask
python環境の構築
# pyenv local Flask-3.6.3
確認
# pyenv local Flask-3.6.3 # pyenv versions 2.7.14 3.6.3 * Flask-3.6.3 (set by /root/tmp/python-flask/.python-version) # python -V Python 3.6.3
環境の保存と再構築
wheelをインストール
$ pyenv exec pip install wheel
pipでインストールしたモジュールの情報を保存
$ pyenv exec pip freeze > pyp_list.txt $ pyenv exec pip wheel --wheel-dir=~/tmp/wheelhouse -r pyp_list.txt
保存した環境を使って同じものをインストール
$ pyenv virtualenv 3.6.4 test-364 $ pyenv global test-364 $ pip install -r pyp_list.txt --use-wheel --no-index --find-links=tmp/wheelhouse $ pip freeze
コマンド
globalコマンドで切り替え
# pyenv global 3.6.3 # pyenv versions 2.7.14 * 3.6.3 (set by /root/.pyenv/version)
localコマンドで切り替え
pyenv versions で表示されているパスが違うことに注意
# cd targetpath # pyenv local 2.7.14 # pyenv versions * 2.7.14 (set by /targetpath/.python-version) 3.6.3 # cd ~ # pyenv versions 2.7.14 * 3.6.3 (set by /root/.pyenv/version)
インストール済リスト
# pyenv versions
virtualenv環境の作成
# pyenv virtualenv 3.6.3 my-env-3.6.3
virtualenv環境のリスト
# pyenv virtualenvs
virtualenvの有効化
# pyenv activate my-virtual-env-3.4.0
インストールした環境の削除
# pyenv uninstall my-virtual-env-3.4.0
Pyenvのupdate
# git clone git://github.com/yyuu/pyenv-update.git ~/.pyenv/plugins/pyenv-update # pyenv update
障害
installコマンドがないと言われる
$ pyenv install --list pyenv: no such command `install'
こんなエラーが出て動かない
以下のコマンドで治った4)
$ sudo ./.pyenv/plugins/python-build/install.sh
3.7系のインストールに失敗する
$ pyenv install 3.7.2 Downloading Python-3.7.2.tar.xz... -> https://www.python.org/ftp/python/3.7.2/Python-3.7.2.tar.xz Installing Python-3.7.2... BUILD FAILED (CentOS Linux 7 using python-build 20180424) Inspect or clean up the working tree at /tmp/python-build.20190117132709.32698 Results logged to /tmp/python-build.20190117132709.32698.log Last 10 log lines: File "/tmp/tmp3gm99fpe/pip-18.1-py2.py3-none-any.whl/pip/_internal/cli/main_parser.py", line 12, in <module> File "/tmp/tmp3gm99fpe/pip-18.1-py2.py3-none-any.whl/pip/_internal/commands/__init__.py", line 6, in <module> File "/tmp/tmp3gm99fpe/pip-18.1-py2.py3-none-any.whl/pip/_internal/commands/completion.py", line 6, in <module> File "/tmp/tmp3gm99fpe/pip-18.1-py2.py3-none-any.whl/pip/_internal/cli/base_command.py", line 18, in <module> File "/tmp/tmp3gm99fpe/pip-18.1-py2.py3-none-any.whl/pip/_internal/download.py", line 38, in <module> File "/tmp/tmp3gm99fpe/pip-18.1-py2.py3-none-any.whl/pip/_internal/utils/glibc.py", line 3, in <module> File "/tmp/python-build.20190117132709.32698/Python-3.7.2/Lib/ctypes/__init__.py", line 7, in <module> from _ctypes import Union, Structure, Array ModuleNotFoundError: No module named '_ctypes' make: *** [install] エラー 1
以下のパッケージをインストールすることで解消
# sudo yum install libffi-devel
development/language/python/pyenv/centos.1547704485.txt.gz · 最終更新: 2019/01/17 05:54 by hayashi