$ brew unlink python $ brew install --ignore-dependencies https://raw.githubusercontent.com/Homebrew/homebrew-core/e128fa1bce3377de32cbf11bd8e46f7334dfd7a6/Formula/python.rb $ brew switch python 3.6.5 $ pip install tensorflow
If you are working with Anaconda, then
conda install python=3.5.0 # or maybe conda install python=2.7.8 # or whatever you want....
create a virtual environment, install then switch to python 3.6.5
$ conda create -n tensorflow python=3.7 $ conda activate tensorflow $ conda install python=3.6.5 $ pip install tensorflow
activate the environment when you would want to use tensorflow
Here is a canonical summary which sums up different solutions for the variety of operating system Python runs on. What follows are possibilities for Microsoft Windows, Linux, macOS and Misc.
As mentioned those are just possibilities - by no means do I claim to have a complete list whatsoever.
In general, it's suggested to use virtual environments (I highly suggest looking at the official Python documentation). With this approach, you easily can set up project-specific Python versions (as well as libraries). Easily manageable and the best part: There are lots of tutorials on the internet on how to approach this:
1.) Open command prompt ("cmd") and enter
pip install virtualenv.
2.) Install your desired Python version via https://www.python.org/downloads/release; Remember: Do not add to
3.) Type into the command prompt:
virtualenv \path\to\env -p \path\to\python_install.exe, whereas
\path\to\env shall be the path where your virtual environment is going to be and
\path\to\python_install.exe the one where your freshly (presumably) installed Python version resides.
4.) Done! You now have a virtual environment set up! Now, to activate the virtual environment execute the batch file which is located inside the
\path\to\env\Scripts\activate.bat. (cf. this website or an official Python guide)
The basic option would be to uninstall the unwanted Python version and re-install the favored one from https://www.python.org/downloads/. To remove the "old" version go to
Control Panel ->
"Uninstall a program" ->
Search for "Python" ->
Right-click on the Python name ->
Uninstall. Bear in mind that Python usually has a PATH variable stored, hence you should remove it as well - Check the following links for this:
Now double-check whether there are any remaining files where Python used to be stored. Usually, you can find all the Python files at either
C:\Program Files (x86)\Pythonxx,
C:\Pythonxx or all of them. You might have installed it in another directory - check where it once was.
Now after de-installing just re-install the wanted version by going to the download page and follow the usual installation process. I won't go into details on how to install Python.. Lastly, you might check which version is currently installed by opening the command prompt and typing
This approach is pretty similar to the second one - you basically uninstall the old one and replace it by your favored version. The only thing that changes it the part regarding how to uninstall the unwanted Python distribution: Simply execute the Python3 installer you originally used to install Python (it's usually stored in your Python directory as mentioned above; for more assistance check out this). There you get an option to
repair or uninstall, proceed by choosing
uninstall, and follow the steps provided via the uninstaller.
No matter how you uninstall Python (there are many resources on this topic, for example this Stack Overflow question or a problem thread a user by the name of Vincent Tang posted on the Stack Exchange site Super User, etc.), just reinstall the wanted Python version by following the steps mentioned in
Option 4 deals with Anaconda. Please refer to this site on how to install Anaconda on Windows.
Step 9 is important as you don't want to install it as your default Python - you want to run multiple versions of Python:
Choose whether to register Anaconda as your default Python. Unless you plan on installing and running multiple versions of Anaconda or multiple versions of Python, accept the default and leave this box checked.
Follow the official tutorial I linked above.
Once done you can create the following commands individually in the anaconda prompt: To overwrite the default python version system-wise use
conda install python=3.6 or to create a virtual environment go ahead and use
conda create -n $PYTHON36_ENV_NAME python=3.6 anaconda whereas
$PYTHON36_ENV_NAME is the custom name you can set. Credit where credit is due - the user @CermakM from this thread strongly influenced this snippet.
In my research I encountered a bunch of useful Stack Overflow threads - you might check them out if you go the tough road with Anaconda:
What follows isn't a downgrade in the classical sense - though for the sake of completeness I decided to mention this approach as well. On Windows you're also able to run multiple Python versions - an infamous thread on StackOverflow deals with this question, thus I politely refer you to there for further reading purposes.
Pretty analog to the third option for Windows I highly suggest you use a virtual environment such as Anaconda. Anaconda - or short conda - is also available on Linux. Check the official installation documentation here. Once again this thread is highly suggested on how to overwrite a Python version, respectively how to specifically create an environment with your wanted Python version.
Another highly suggested virtual environment is
Pyenv. The user @Sawan Vaidya described in this Stack Overflow question on how to up-or downgrade a Python version with the help of
Pyenv. You can either set a Python version globally or create a local environment - both explained in the mentioned thread.
Another user, namely @Jeereddy, has suggested to use the software package management system
Homebrew. He explained this option thoroughly in this current question:
$ brew unlink python $ brew install --ignore-dependencies https://raw.githubusercontent.com/Homebrew/homebrew-core/e128fa1bce3377de32cbf11bd8e46f7334dfd7a6/Formula/python.rb $ brew switch python 3.6.5
No need to reinvent the wheel - this thread is filled with lots of beautiful running approaches such as the one by @Sidharth Taneja.
lsto list all installed Python versions
sudo rm -rf 3.7, removing Python version 3.7 - can be repeated for whatever version(s) you want to delete
python3 -v, it should display the version you originally wanted to have installed
Install Python source code as it is like this:
#Taken Python 3.6 as an example $ mkdir /home/<user>/python3.6 $ ./configure --prefix=/home/<user>/python3.6/ $ make altinstall
You're now able to either add the downloaded version (
PATH as well as
LD_LIBRARY_PATH or just create a virtual environment by:
/home/<user>/python3.6/bin/python3.6 -m venv env-python3.6. A very aesthetic and simple solution to run multiple Python versions on your system.
Homebrew - credit to @Shayan with his reply here:
brew update brew install pyenv
2.) Cloning the GitHub repository to get latest
git clone https://github.com/pyenv/pyenv.git ~/.pyenv
3.) Defining the environment variables as follows
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile
4.) Restarting shell so
PATH change works
5.) Checking the available Python versions
pyenv install --list
6.) Installing the wanted Python version, e.g. 3.6
pyenv install 3.6
7.) Setting it globally (you can also go ahead and only use it in a certain environment)
pyenv global 3.6
8.) Check the Python version the system is using - your wanted / downgraded version should be displayed here.
Similar to previous approaches you can download Anaconda on macOS as well. For an installation guide click here. The usage is pretty much the same as I've already described in
Option 4 of the
Windows guide. Please check out above.
In this case it's getting pretty repetitive. I kindly suggest you to check the following resources for further reading:
When writing this post I had the problem of not knowing where to draw the line. When looking up the operating systems Python currently supports you get a huge list, including the ones I mentioned, i.e. Linux, Microsoft Windows and macOS, though obviously different Linux distributions are single-handedly treated, e.g. CentOS, Arch Linux or Fedora should deserve a spot as well - or shall I make separate options for Windows 10, 7, etc.?
Due to the high degree of repetitiveness as far as modules like Homebrew, Conda or alike are concerned I decided to limit my list to the "main three" operating systems - distributions like Ubuntu (How do I downgrade my version of python from 3.7.5 to 3.6.5 on ubuntu), CentOS (How to downgrade python version on CentOS?) can be easily researched on Stack Overflow. Most often than not you can apply solutions from the Linux tab for said distributions. The same goes with Windows and macOS (versions).
Download python 3.6.0 from https://www.python.org/downloads/release/python-360/
Install it as a normal package.
ls command and all installed Python versions will be visible here.
sudo rm -rf 3.7
Check the version now by
python3 -V and it will be 3.6 now.
Create a python virtual environment using conda, and then install the tensorflow:
$ conda create -n [environment-name] python=3.6 # it may ask for installing python-3.6 if you don't have it already. Type "y" to proceed... $ activate [environment-name] $ pip install tensorflow
From now on, you can activate the environment whenever you want to use tensorflow.
If you don't have the conda package manager, first download it from here: https://www.anaconda.com/distribution
A clean way without having to uninstall a previous version or reverting to additional software like Anaconda or docker, etc. is to download the Python 3.6 source code and install it as follows:
$ mkdir /home/<user>/python3.6 $ ./configure --prefix=/home/<user>/python3.6/ $ make altinstall
To use it you either:
/home/<user>/python3.6/bin to your
LD_LIBRARY_PATH) and be done with it. (You may also need to add to your include path etc., depending on what you're trying to achieve exactly - but you get the idea, I hope.);
or, you create a virtual environment similar to this:
/home/<user>/python3.6/bin/python3.6 -m venv env-python3.6.
No sudo or root access required. No messing up your system.
Tested on Mac Catalina
brew install pyenv
Add following to your shell config file:
.bash_profile- For Bash
.zshrc- For Zsh
export PYENV_ROOT="$HOME/.pyenv" export PATH="$PYENV_ROOT/bin:$PATH" eval "$(pyenv init -)"
Restart your shell. Start a new shell or run
exec "$SHELL" in your current shell.
Tested on Arch Linux
pyenv on your system.
curl https://pyenv.run | bash
Follow same steps as in Step 2 and 3 of MacOS installation.
pyenv-win on Windows.
pip install pyenv-win --target "$HOME\.pyenv"
pip install pyenv-win --target "%USERPROFILE%\.pyenv"
Setup the environment variables using Powershell/Terminal.
[System.Environment]::SetEnvironmentVariable('PYENV',$env:USERPROFILE + "\.pyenv\pyenv-win\","User") [System.Environment]::SetEnvironmentVariable('PYENV_HOME',$env:USERPROFILE + "\.pyenv\pyenv-win\","User") [System.Environment]::SetEnvironmentVariable('path', $HOME + "\.pyenv\pyenv-win\bin;" + $HOME + "\.pyenv\pyenv-win\shims;" + $env:Path,"User")
Close and re-open your terminal. Run
pyenv --version on the terminal.
a. If the return value is the installed version of pyenv, then continue below. b. If you receive a command not found error, ensure the environment variables are properly set via the GUI: This PC ? Properties ? Advanced system settings ? Advanced ? Environment Variables... ? PATH c. If you receive a command not found error and you are using Visual Studio Code or another IDE with a built in terminal, restart it and try again.
pyenv rehash from the home directory.
$ pyenv versions * system (set by /home/souser/.pyenv/version) 3.6.9
pyenv install <version-number>
pyenv uninstall <version-number>
pyenv global <version-number> # <version-number> is the name assigned to your python in output of `pyenv versions`
Set a python version for a directory and all it's sub-directories
$ python --version Python 3.9.1 $ pyenv global 3.6.9 $ python --version Python 3.6.9
pyenv local <version-number> # <version-number> is the name assigned to your python in output of `pyenv versions`
~/tmp/temp$ python --version Python 3.9.1 ~/tmp/temp$ pyenv local 3.6.9 ~/tmp/temp$ python --version Python 3.6.9
I was having trouble installing tensorflow with python 3.7 and followed these instructions to have a virtual environment setup with python3.6 and got it working
Download the Python3.6 tgz file from the official website (eg. Python-3.6.6.tgz) Unpack it with tar -xvzf Python-3.6.6.tgz cd Python-3.6.6 run ./configure run make altinstall to install it (install vs altinstall explanation here
If you are using jupyter notebook or jupyter lab this can be helpful to choose the right virtual environment
python -m venv projectname source projectname/bin/activate pip install ipykernel ipython kernel install --user --name=projectname
At this point, you can start jupyter, create a new notebook and select the kernel that lives inside your environment.
Hope this helps
I would just recommend creating a new virtual environment and installing all the packages from the start as the wheels for some packages might have been installed for the previous version of the Python. I believe this is the safest way and you have two options.
Creating a new virtual environment with
python3.6 -m venv -n new_env source venv_env/bin/activate
conda create -n new_env python=3.6 conda activate new_env
The packages you install in an environment are built based on the Python version of the environment and if you do not carefully modify the existing environment, then, you can cause some incompatibilities between packages. That is why I would recommend a using a new environment built with Python 3.6.
Download and install Python 3.6 and then change the system path environment variable to that of python 3.6 and delete the python 3.7 path system environment variable. Restart pc for results.
If you use anaconda, you can just create a new environment with the specified version. In case you don't want to keep the existing version 3.7, you can just uninstall it and install it from here.
I just now downgraded my Python 3.9 to 3.6 because I wanted to use the librosa package but it does not support Python 3.9 still now.
python3 --version in the terminal and it will show this version of Python.
For those who want to add multiple Python version in their system: I easily add multiple interpreters by running the following commands: