Не получается собрать Python 3.7 из официальных исходников?
Гайд
Как установить питон, требуемой версии одному пользователю в домашнюю директорию
Вам не нужно менять системный питонНикогда
Запускать так python3.7 -v
Не так  python3 -v
Почему? which python3.7; which python3
Что требуется поставить для сборки в убунтах 16.хх-18.ххapt-get install -y \
  build-essential git libexpat1-dev libssl-dev zlib1g-dev \
  libncurses5-dev libbz2-dev liblzma-dev \
  libsqlite3-dev libffi-dev\
  libffi-dev tcl-dev linux-headers-generic libgdbm-dev \
  libreadline-dev tk-dev \
  libdb-dev \
  libmpdec-dev \
  libncursesw5-devrefhttps://packages.ubuntu.com/source/artful/python3.6
https://stackoverflow.com/a/51224996/1346222
Получаем исходники и чекаутим нужную версиюcd /tmp
git clone https://github.com/python/cpython.git
cd cpython
git checkout 3.7
Обращаем внимание 
Не --prefix=$HOME/.local/bin а --prefix=$HOME/.localИнсталлер создаст такие диры ${prefix}/{bin,include,lib,share}
Сделайте tree .local до и после make install, тогда не возникнет вопросов, что поставил питон
Перед любой операцией - требуется читать ман!./configure --help
Например если предполагается собирать разные варианты питона --with-lto может сильно ускорить процесс  
-j4 повесит сборку на 4 ядра, если они у вас конечно есть./configure --prefix=$HOME/.local --enable-optimizations
make -j4
make install
инсталлер формирует такую структуру для питона
Перед установкой, желательно руками удалить все. Не директории. В данной директории может быть много софта.local├── bin
│   ├── 2to3 -> 2to3-3.7
│   ├── 2to3-3.7
│   ├── easy_install-3.7
│   ├── idle3 -> idle3.7
│   ├── idle3.7
│   ├── pip3
│   ├── pip3.7
│   ├── pydoc3 -> pydoc3.7
│   ├── pydoc3.7
│   ├── python3 -> python3.7
│   ├── python3.7
│   ├── python3.7-config -> python3.7m-config
│   ├── python3.7m
│   ├── python3.7m-config
│   ├── python3-config -> python3.7-config
│   ├── pyvenv -> pyvenv-3.7
│   └── pyvenv-3.7
├── include
│   └── python3.7m
├── lib
│   ├── libpython3.7m.a
│   ├── pkgconfig
│   └── python3.7
│   └── man
Если после инстала и сборки which python3.7не дает результата - проверьте наличие в PATH ~./local/bin$ grep "$HOME/.local/bin:" <<< "$PATH"  
/home/sim3x/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:
Ура, благодаря sim3x c toster'а и MaxU с stackoverflow я поставил Python 3.7.0 в Ubuntu 16.04(.4) LTS. Теперь я просто обязан сделать мини гайд.
Для установки Python из исходников надо:
openssl (libssl-dev), zlib1g-dev и libffi-dev (я ставил всё через synaptic, так проще).
После того, как установили это всё, идём на GitHub за сурсами CPython'а (это интерпретатор Python'а). Я скачал версию 3.7 (выбрав её в Branch'ах или по тегу).
Распаковываем архив (желательно в раздел home).
Заходим в консоль и переходим в папку из архива -> timosha@timosha-UbuntuPC:~$ cd cpython-3.7
Потом -> sudo ./configure --prefix=$HOME/.local --enable-optimizations
Ждём, пока процесс не завершится.
После того, как всё закончилось -> sudo make.
Когда всё закончилось, то возможно, что Python уже установился. Откроем ещё окно терминала и проверяем -> python3.7 -V. Если говорит, что не найден пакет, то переходим в окно терминала, где собирался Python и пишем -> sudo make install (в папке cpython-3.7).
Теперь всё должно заработать, проверяем! -> python3.7 -V.
Должно выдать: Python 3.7.0+.Поздравляем, у Вас Python новой версии :).
Pip доступен по команде -> python3.7 -m pipЕщё один не менее полезный гайдик.Вопрос на stackoverflow.