-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathsetup-python3.sh
executable file
·62 lines (50 loc) · 1.58 KB
/
setup-python3.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
#!/usr/bin/env bash
set -euo pipefail
if [[ -e "$HOME/Library/Python/3.8/bin" ]] ; then
export PATH=$PATH:$HOME/Library/Python/3.8/bin
fi
# Debian / Ubuntu
if command -v apt-get >/dev/null 2>&1 ; then
echo "=> Detected apt-get..."
export DEBIAN_FRONTEND=noninteractive
# Dependency for virtualenv
sudo apt-get install --yes build-essential python-dev libffi-dev
type virtualenv &>/dev/null || sudo apt-get install --yes python-virtualenv
# Dependency for ansible
sudo apt-get install --yes libssl-dev
fi
echo "=> Detecting python3, python2..."
# Last one wins
command -v python >/dev/null 2>&1 && PY_BIN="python"
command -v python3 >/dev/null 2>&1 && PY_BIN="python3"
command -v python3.7 >/dev/null 2>&1 && PY_BIN="python3.7"
VENV_FOLDER="venv-python3"
VENV_PATH="${HOME}/${VENV_FOLDER}"
${PY_BIN} -m venv ${VENV_PATH}
source ${VENV_PATH}/bin/activate
echo "=> Detecting pip3, pip2 or pip..."
# Last one wins
command -v pip >/dev/null 2>&1 && PIP_BIN="pip"
command -v pip3 >/dev/null 2>&1 && PIP_BIN="pip3"
if ! type python | grep -q ${VENV_FOLDER} ; then
echo "!! Failed to use venv"
exit 1
fi
echo "=> Listing python libraries..."
${PIP_BIN} list
echo "=> Installing latest pip..."
${PIP_BIN} install --upgrade pip setuptools wheel
echo "=> Installing python development tools..."
${PIP_BIN} install --upgrade \
pygments \
yamllint \
flake8 \
autopep8 \
black \
nose \
ansible \
2>&1 | awk '{print " "$0}'
echo "=> Installation complete!"
echo " To activate, run:"
echo " source ${VENV_PATH}/bin/activate"
echo "=> Setup is complete!"