For a newbie like me, it is difficult to keep upgrading Python and associated packages while resolving package dependencies. This is where Anaconda comes to my rescue. Anaconda is a free Python distribution and package manager. It comes with lot of pre-installed packages (primarily for data science).
It can be downloaded for Linux from the Continuum’s site https://www.continuum.io/downloads#linux . The instructions for installation on Linux are available on the same site. I have downloaded and installed 64 bit Python 3.6 version on my Linux Mint.
In order to update Anaconda and Python to latest version, you need to run the below command on the Terminal.
However, I continue to have older version of Python. You can see in below screenshot, Python 3.5.2 which I manually installed and Python 2.7.12 which was pre-installed on Linux Mint are still available.
conda update anaconda
On my Linux Mint, I have already updated to Anaconda version 4.4.0 (latest available as of date). This way, it is easy to keep upgrading Python and required packages.
On my PyCharm, I can choose Python 3.6 (installed through Anaconda / conda update) as the project interpreter.
Anaconda also comes with Anaconda Navigator – a GUI useful to launch Applications, manage packages, learning Python etc,
To add short cut to anaconda-navigator to desktop, the created the following script (desktop entry file in usr/share/applications folder
[Desktop Entry] Version=1.0 Type=Application Name=Anaconda-Navigator GenericName=Anaconda Comment=Scientific PYthon Development EnviRonment - Python3 Exec=bash -c 'export PATH="/home/srinivas/anaconda3/bin:$PATH" && /home/srinivas/anaconda3/bin/anaconda-navigator' Categories=Development;Science;IDE;Qt;Education; Icon=/home/srinivas/anaconda3/Anaconda.png Terminal=false StartupNotify=true Name[en_IN]=Anaconda
Spyder is an open source cross platform IDE for scientific programming in Python. Spyder integrates NumPy, SciPy, Matplotlib and IPython, as well as other open source software.
To conclude, Anaconda is a Python distribution with lot of useful features and learning opportunity in one place.