You can install Python-3.6 on Debian 8 as follows:

wget tar xvf Python-3.6.9.tgz cd Python-3.6.9 ./configure --enable-optimizations --enable-shared make -j8 sudo make altinstall python3.6
Code language: JavaScript (javascript)

It is recommended to use make altinstall according to the official website.

If you want pip to be included, you need to add --with-ensurepip=install to your configure call. For more details see ./configure --help.

Warning: make install can overwrite or masquerade the python binary. make altinstall is therefore recommended instead of make install since it only installs exec_prefix/bin/pythonversion.

Some packages need to be installed to avoid some known problems, see: Common build problems(updated)


sudo apt-get install -y make build-essential libssl-dev zlib1g-dev libbz2-dev \ libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev \ xz-utils tk-dev libffi-dev liblzma-dev
Code language: JavaScript (javascript)

Alternative of libreadline-dev:

sudo apt install libedit-dev

Fedora/CentOS/RHEL(aws ec2):

sudo yum install zlib-devel bzip2 bzip2-devel readline-devel sqlite sqlite-devel \ openssl-devel xz xz-devel libffi-devel

Alternative of openssl-devel:

sudo yum install compat-openssl10-devel --allowerasing


You can download the latest python-x.y.z.tar.gz from here.

To set a default python version and easily switch between them , you need to update your update-alternatives with the multiple python version.

Let’s say you have installed the python3.7 on debian stretch , use the command whereis python to locate the binary (*/bin/python). e,g:

/usr/local/bin/python3.7 /usr/bin/python2.7 /usr/bin/python3.5

Add the python versions:

update-alternatives --install /usr/bin/python python /usr/local/bin/python3.7 50 update-alternatives --install /usr/bin/python python /usr/bin/python2.7 40 update-alternatives --install /usr/bin/python python /usr/bin/python3.5 30

The python3.7 with the 50 priority is now your default python , the python -V will print:

Python 3.7.0b2
Code language: CSS (css)

To switch between them, use:

update-alternatives --config python

Sample output:

There are 3 choices for the alternative python (providing /usr/bin/python). Selection Path Priority Status ------------------------------------------------------------ * 0 /usr/local/bin/python3.7 50 auto mode 1 /usr/bin/python2.7 40 manual mode 2 /usr/bin/python3.5 30 manual mode 3 /usr/local/bin/python3.7 50 manual mode Press <enter> to keep the current choice[*], or type selection number:
Code language: HTML, XML (xml)



0 条评论


Avatar placeholder