2018-02-28 06:28:08 +00:00
|
|
|
#!/bin/bash
|
2018-04-12 18:07:33 +00:00
|
|
|
# Description: The Python programming language
|
2018-02-28 06:28:08 +00:00
|
|
|
set -e
|
|
|
|
|
2019-07-15 15:56:21 +00:00
|
|
|
__PYTHON_VERSION=3.7.4
|
2018-02-28 06:28:08 +00:00
|
|
|
|
2018-02-28 15:07:41 +00:00
|
|
|
_recipe _path
|
2018-09-09 04:46:11 +00:00
|
|
|
_recipe git
|
2018-02-28 15:07:41 +00:00
|
|
|
|
2020-01-02 15:22:15 +00:00
|
|
|
function _pip {
|
|
|
|
local pkg=$1
|
|
|
|
if ! pip show $pkg >/dev/null 2>&1; then
|
|
|
|
_run "[pip] Install $pkg" pip install $pkg
|
|
|
|
else
|
|
|
|
echo "[pip] $pkg is already installed, skiping."
|
|
|
|
fi
|
|
|
|
}
|
|
|
|
|
2018-02-28 06:28:08 +00:00
|
|
|
case $_PLATFORM in
|
|
|
|
darwin)
|
|
|
|
_recipe brew
|
|
|
|
_brew pyenv
|
|
|
|
_brew pyenv-virtualenv
|
|
|
|
;;
|
|
|
|
*)
|
|
|
|
_recipe _apt
|
|
|
|
for dep in make build-essential libssl-dev zlib1g-dev libbz2-dev \
|
|
|
|
libreadline-dev libsqlite3-dev wget curl llvm \
|
|
|
|
libncurses5-dev libncursesw5-dev xz-utils tk-dev; do
|
|
|
|
_apt $dep
|
|
|
|
done
|
|
|
|
if [ ! -d ~/.pyenv ]; then
|
2018-09-09 04:46:11 +00:00
|
|
|
_run "[git] Install pyenv" bash <(curl -L https://github.com/pyenv/pyenv-installer/raw/master/bin/pyenv-installer)
|
|
|
|
else
|
|
|
|
_run "[git] Upgrade pyenv" git -C $(pyenv root) pull
|
2018-02-28 06:28:08 +00:00
|
|
|
fi
|
|
|
|
_path "${HOME}/.pyenv/bin"
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
|
2018-02-28 15:07:41 +00:00
|
|
|
_profile 'eval "$(pyenv init -)"'
|
|
|
|
_profile 'eval "$(pyenv virtualenv-init -)"'
|
2018-08-30 17:35:21 +00:00
|
|
|
_profile 'pyenv global $(pyenv versions --bare --skip-aliases | egrep "^(\.?[[:digit:]]+)+$" | sort -rV)'
|
|
|
|
|
2018-02-28 15:07:41 +00:00
|
|
|
|
2018-02-28 06:28:08 +00:00
|
|
|
if ! [ -d ~/.pyenv/versions/${__PYTHON_VERSION} ]; then
|
2018-09-09 04:46:11 +00:00
|
|
|
_run "[pyenv] Install python ${__PYTHON_VERSION}" pyenv install ${__PYTHON_VERSION}
|
2018-02-28 06:28:08 +00:00
|
|
|
fi
|
|
|
|
pyenv global ${__PYTHON_VERSION}
|