At the writing time of this article Python 3.7.17 latest stable version of 3.7 series is available to install. This article will help you to install Python3.7.17 on Ubuntu and LinuxMint operating system. You can visit here to read more about Python releases.

Advertisement

Prerequisites

It is an good practice to keep packages up to date. So, first of all upgrade current packages on your system by running following commands.

sudo apt update && sudo apt upgrade 

Then, Use the following command to install prerequisites for Python before installing it.

sudo apt-get install wget build-essential checkinstall 
sudo apt-get install libreadline-gplv2-dev libncursesw5-dev libssl-dev \
    libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev libffi-dev zlib1g-dev 

Step 1 – Download Python 3.7

Download Python using following command from python official site. You can also download latest version in place of specified below.

cd /usr/src 
sudo wget https://www.python.org/ftp/python/3.7.17/Python-3.7.17.tgz 

After finishing the downloading, extract the archive file.

sudo tar xzf Python-3.7.17.tgz 

Step 2 – Install Python 3.7

Use below set of commands to compile Python source code on your system using altinstall.

cd Python-3.7.17 
sudo ./configure --enable-optimizations 
sudo make altinstall 

make altinstall is used to prevent replacing the default python binary file /usr/bin/python.

Step 3 – Check Python Version

Check the latest version installed of python using below command

python3.7 -V 

Python-3.7.17

Conclusion

This tutorial helps you to install Python 3.7 on your Ubuntu, Debian and Linuxmint systems.

Share.

129 Comments

  1. Great instructions, thank you.

    Trying to run ‘pipenv run python setup.py install’ on Mint 20 is successful up to the end, then;
    self.set_undefined_options(‘install’,(‘install_layout’,’install_layout’))
    File “/usr/local/lib/python3.7/distutils/cmd.py”, line 290, in set_undefined_options
    setattr(self, dst_option, getattr(src_cmd_obj, src_option))
    File “/usr/local/lib/python3.7/distutils/cmd.py”, line 103, in __getattr__
    raise AttributeError(attr)
    AttributeError: install_layout

    Can anyone suggest a solution?

  2. this worked for me but have an issue where only the user that installed python can utilize it. When I become root or another user the command python3.7 doesn’t bring up python. any guide how to make this work for all users on this machine.

    Here is the response when I call which python3.7:
    which python3.7
    /usr/local/bin/python3.7

    becoming another user:
    which python3.7
    /usr/bin/which: no python3.7 in (/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/home/cod/.local/bin:/home/cod/bin)

  3. I have a 16.04 version of Ubuntu which comes with python 3.5. I am not a python guy at all but I need python 3.7 to run an application. I would like to replace 3.5 with 3.7 in /usr/bin. The instructions on this page for downloading and creating python 3.7 seemed to work perfectly (thanks so much for that). However, I need 3.7 to be my default python3 version. I tried using ‘make install’ instead of ‘make altinstall’ to no effect. How do I do this?
    Regards.

    • Naveen Vasudevan on

      sudo update-alternatives –config python3 run this command and then select your required version from the list

  4. Hey, i installed Python 3.7.8 on Manjaro (Arch) and instruction for installing/compiling Python 3.7.x:

    please install gcc before download python.

    (sudo pacman -S gcc)

    okay. Next install make:
    (sudo pacman -S make)

    and going to download the python on instruction and compiling.

    Good Luck

  5. Hi Rahul,

    very useful tutorial, I used it to install Python 3.7 on my ARM64 Odroid C4 running Ubuntu 20.04 – and it worked!

    Thanks mate!

  6. Hi Rahul,

    this is very helpful! thanks a lot.

    One small input: on my system, I didnt have wget installed. Maybe adding the command sudo apt install wget would make this post even better.

    Cheers,
    Jan

  7. A big “Thank you!” Rahul for your very clean and complete description that has reliably installed Python 3.7 on my Ubuntu 18.10.

  8. Maria Carmela Raguso on

    I guys, thank u for this tutorial.
    i’m new user of Python.
    Need to install Python 3.7 on Ubuntu, which version of the OS would you racommend?

    thank for you help

  9. Hi All,

    I m getting the below error while trying to compile python 3.7.4 . I m using openssl version OpenSSL 1.0.2o.

    My config command : ./configure –enable-optimizations –with-ensurepip=install –with-openssl=/usr/local/openssl/

    *** WARNING: renaming “_ssl” since importing it failed: libssl.so.1.0.0: cannot open shared object file: No such file or directory
    *** WARNING: renaming “_hashlib” since importing it failed: libssl.so.1.0.0: cannot open shared object file: No such file or directory

    Python build finished successfully!
    The necessary bits to build these optional modules were not found:
    _lzma _tkinter _uuid
    readline
    To find the necessary bits, look in setup.py in detect_modules() for the module’s name.

    The following modules found by detect_modules() in setup.py, have been
    built by the Makefile instead, as configured by the Setup files:
    _abc atexit pwd
    time

    Following modules built successfully but were removed because they could not be imported:
    _hashlib _ssl

    Could not build the ssl module!
    Python requires an OpenSSL 1.0.2 or 1.1 compatible libssl with X509_VERIFY_PARAM_set1_host().
    LibreSSL 2.6.4 and earlier do not provide the necessary APIs, https://github.com/libressl-portable/portable/issues/381

  10. Hi,
    Thanks a lot. I am new to Ubuntu and I did not know that Python 3.6 was already installed in my system. So, can you tell how to uninstall Python 3.7.4? I don’t want to keep too many instances of Python. I am using Ubuntu 18.04.

  11. Your instructions were complete
    It just worked! To Be Honest I am surprised because most Linux stuff doesn’t work quite as advertised.

    Thank you

    • if running on ubuntu 18, mint 19, install dependencies

      sudo apt-get install build-essential libsqlite3-dev sqlite3 bzip2 libbz2-dev zlib1g-dev libssl-dev openssl libgdbm-dev libgdbm-compat-dev liblzma-dev libreadline-dev libncursesw5-dev libffi-dev uuid-dev

  12. I am sorry this method is not working for me; running Linux Mint
    last version. Python 3.4.7 getting the following message:

    zipimport.ZipImportError: can’t decompress data; zlib not available
    Makefile:1142: recipe for target ‘altinstall’ failed
    make: *** [altinstall] Error 1

  13. I been trying to find the solution for almost a week had so much trouble, but following your tutorial was a success. keep up the good work.

  14. Thanks so much bro. had much difficulties trying to install python but following your steps have eased my stress.

    • type ‘python’ in terminal
      or, if you have written a python script write ‘python3.7 scriptname.py’ in terminal

  15. Mohee Jarada on

    You are amazing. I did your steps into different Linux distributions of Ubuntu (Linux Mint 18 + Linux Mint 19 + OpenSuse and ElementaryOS) based and worked smoothly. Much appreciated for this excellent post.

  16. Hi, i have follow and successfully install python3.7. How do I remove them? Since in “dpkg -l | grep”, python3.7 is not there.

  17. Donald L Wilson on

    Anybody happen to know of a shell script that you could run that would tell you which of your files already installed depend on the earlier version of python. That way you could see just how many of your programs needed to be patched?

  18. Christian Walter on

    The procedure worked for me, Ubuntu 15.04.
    There were some error notifications upon the command
    sudo apt-get install libreadline-gplv2-dev libncursesw5-dev libssl-dev \
    libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev libffi-dev zlib1g-dev
    yet the rest of the procedure worked out well.
    The compilation was successful and I can use python3.7 alright so far.
    Thank you for your instruction, cheers!

  19. Akhil Mathew on

    Before installing Python 3.7.3
    just execute this command given below for easy working
    $ sudo apt-get install zlib1g-dev

  20. Great instructions. But, they are being done without consideration for the existing ‘Python 3.6.7’ that presently exists on the ‘Linux Mint 19.1 Tessa’ working as the primary platform? There won’t be confusion in regard to anything to do w/python3 then?

  21. Please help!

    (python-may2019) kotur@sys6:~/programowanie$ pip install jupyter
    pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.
    Collecting jupyter
    Cache entry deserialization failed, entry ignored
    Could not fetch URL https://pypi.python.org/simple/jupyter/: There was a problem confirming the ssl certificate: Can’t connect to HTTPS URL because the SSL module is not available. – skipping
    Could not find a version that satisfies the requirement jupyter (from versions: )
    No matching distribution found for jupyter

  22. Bhagesh Pant on

    Hi @Rahul_Kumar,

    Thanks for contributing this great article. The output throws a Build error while compiling python source within ‘$ sudo make altinstall’.

    Just want to fork an edit for a successful installation on Ubuntu (18.04 or other).

    It works neatly if you add another LOC within STEP-1 (Prerequisites) as stated under, rest assured installation will be successful.

    $sudo apt-get install libffi-dev

    *** STEP-1 : Prerequisites ***
    $ sudo apt-get install build-essential checkinstall
    $ sudo apt-get install libreadline-gplv2-dev libncursesw5-dev libssl-dev \
    libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev
    $ sudo apt-get install libffi-dev

  23. I have this error when i use python3.7 for create virtual enviorment.

    GNU nano 2.9.3 /var/log/apache2/rpg-tukunang-siteminder.log

    [Tue Mar 19 06:56:20.910728 2019] [wsgi:error] [pid 29306:tid 139714993866496] [remote 188.114.102.126:28470] File “/var/www/sm/python/lib/python3.7/site-packages/django/db/models/aggregates.py”, line 5, in
    [Tue Mar 19 06:56:20.910731 2019] [wsgi:error] [pid 29306:tid 139714993866496] [remote 188.114.102.126:28470] from django.db.models.expressions import Case, Func, Star, When
    [Tue Mar 19 06:56:20.910737 2019] [wsgi:error] [pid 29306:tid 139714993866496] [remote 188.114.102.126:28470] File “/var/www/sm/python/lib/python3.7/site-packages/django/db/models/expressions.py”, line 7, in
    [Tue Mar 19 06:56:20.910740 2019] [wsgi:error] [pid 29306:tid 139714993866496] [remote 188.114.102.126:28470] from django.db.models import fields
    [Tue Mar 19 06:56:20.910749 2019] [wsgi:error] [pid 29306:tid 139714993866496] [remote 188.114.102.126:28470] File “/var/www/sm/python/lib/python3.7/site-packages/django/db/models/fields/__init__.py”, line 11, in
    [Tue Mar 19 06:56:20.910752 2019] [wsgi:error] [pid 29306:tid 139714993866496] [remote 188.114.102.126:28470] from django import forms
    [Tue Mar 19 06:56:20.910757 2019] [wsgi:error] [pid 29306:tid 139714993866496] [remote 188.114.102.126:28470] File “/var/www/sm/python/lib/python3.7/site-packages/django/forms/__init__.py”, line 6, in
    [Tue Mar 19 06:56:20.910761 2019] [wsgi:error] [pid 29306:tid 139714993866496] [remote 188.114.102.126:28470] from django.forms.boundfield import * # NOQA
    [Tue Mar 19 06:56:20.910766 2019] [wsgi:error] [pid 29306:tid 139714993866496] [remote 188.114.102.126:28470] File “/var/www/sm/python/lib/python3.7/site-packages/django/forms/boundfield.py”, line 4, in
    [Tue Mar 19 06:56:20.910769 2019] [wsgi:error] [pid 29306:tid 139714993866496] [remote 188.114.102.126:28470] from django.forms.widgets import Textarea, TextInput
    [Tue Mar 19 06:56:20.910775 2019] [wsgi:error] [pid 29306:tid 139714993866496] [remote 188.114.102.126:28470] File “/var/www/sm/python/lib/python3.7/site-packages/django/forms/widgets.py”, line 21, in
    [Tue Mar 19 06:56:20.910778 2019] [wsgi:error] [pid 29306:tid 139714993866496] [remote 188.114.102.126:28470] from .renderers import get_default_renderer
    [Tue Mar 19 06:56:20.910783 2019] [wsgi:error] [pid 29306:tid 139714993866496] [remote 188.114.102.126:28470] File “/var/www/sm/python/lib/python3.7/site-packages/django/forms/renderers.py”, line 11, in
    [Tue Mar 19 06:56:20.910786 2019] [wsgi:error] [pid 29306:tid 139714993866496] [remote 188.114.102.126:28470] from django.template.backends.jinja2 import Jinja2
    [Tue Mar 19 06:56:20.910792 2019] [wsgi:error] [pid 29306:tid 139714993866496] [remote 188.114.102.126:28470] File “/var/www/sm/python/lib/python3.7/site-packages/django/template/backends/jinja2.py”, line 1, in
    [Tue Mar 19 06:56:20.910795 2019] [wsgi:error] [pid 29306:tid 139714993866496] [remote 188.114.102.126:28470] import jinja2
    [Tue Mar 19 06:56:20.910800 2019] [wsgi:error] [pid 29306:tid 139714993866496] [remote 188.114.102.126:28470] File “/var/www/sm/python/lib/python3.7/site-packages/jinja2/__init__.py”, line 82, in
    [Tue Mar 19 06:56:20.910804 2019] [wsgi:error] [pid 29306:tid 139714993866496] [remote 188.114.102.126:28470] _patch_async()
    [Tue Mar 19 06:56:20.910809 2019] [wsgi:error] [pid 29306:tid 139714993866496] [remote 188.114.102.126:28470] File “/var/www/sm/python/lib/python3.7/site-packages/jinja2/__init__.py”, line 78, in _patch_async
    [Tue Mar 19 06:56:20.910812 2019] [wsgi:error] [pid 29306:tid 139714993866496] [remote 188.114.102.126:28470] from jinja2.asyncsupport import patch_all
    [Tue Mar 19 06:56:20.910818 2019] [wsgi:error] [pid 29306:tid 139714993866496] [remote 188.114.102.126:28470] File “/var/www/sm/python/lib/python3.7/site-packages/jinja2/asyncsupport.py”, line 13, in
    [Tue Mar 19 06:56:20.910821 2019] [wsgi:error] [pid 29306:tid 139714993866496] [remote 188.114.102.126:28470] import asyncio
    [Tue Mar 19 06:56:20.910826 2019] [wsgi:error] [pid 29306:tid 139714993866496] [remote 188.114.102.126:28470] File “/usr/lib/python3.6/asyncio/__init__.py”, line 21, in
    [Tue Mar 19 06:56:20.910830 2019] [wsgi:error] [pid 29306:tid 139714993866496] [remote 188.114.102.126:28470] from .base_events import *
    [Tue Mar 19 06:56:20.910835 2019] [wsgi:error] [pid 29306:tid 139714993866496] [remote 188.114.102.126:28470] File “/usr/lib/python3.6/asyncio/base_events.py”, line 17, in
    [Tue Mar 19 06:56:20.910838 2019] [wsgi:error] [pid 29306:tid 139714993866496] [remote 188.114.102.126:28470] import concurrent.futures
    [Tue Mar 19 06:56:20.910843 2019] [wsgi:error] [pid 29306:tid 139714993866496] [remote 188.114.102.126:28470] File “/var/www/sm/python/lib/python3.7/site-packages/concurrent/futures/__init__.py”, line 8, in
    [Tue Mar 19 06:56:20.910849 2019] [wsgi:error] [pid 29306:tid 139714993866496] [remote 188.114.102.126:28470] from concurrent.futures._base import (FIRST_COMPLETED,
    [Tue Mar 19 06:56:20.910863 2019] [wsgi:error] [pid 29306:tid 139714993866496] [remote 188.114.102.126:28470] File “/var/www/sm/python/lib/python3.7/site-packages/concurrent/futures/_base.py”, line 381
    [Tue Mar 19 06:56:20.910871 2019] [wsgi:error] [pid 29306:tid 139714993866496] [remote 188.114.102.126:28470] raise exception_type, self._exception, self._traceback
    [Tue Mar 19 06:56:20.910889 2019] [wsgi:error] [pid 29306:tid 139714993866496] [remote 188.114.102.126:28470] ^
    [Tue Mar 19 06:56:20.910897 2019] [wsgi:error] [pid 29306:tid 139714993866496] [remote 188.114.102.126:28470] SyntaxError: invalid syntax

  24. Two comments:

    1) I find it bad form to build as root. If the build fails (as it did for me) you have a mess to clean up with files/folders owned by root. The Makefile is designed (and intended) to build and test python as an unprivileged user in an unprivileged folder. Only the final step (make altinstall) needs to run as super user.

    2) You might have missed a dependency. My build failed on _ctype module. Although this is listed as an optional module and the build process continues after acknowledging the failure, the build ultimately fails during final installation while pre-compiling the python library. So the python library only gets partially installed and leaves quite the mess to clean up. So maybe it is not so optional? Add “libffi-dev” to the list of libraries to install prior to building. Once I added it, the install went smoothly.

  25. I need to run Selenium using Python 3.7 on Ubuntu 18.04. Since with above steps Python 3.7 libs gets installed in /usr/local/bin not in /usr/bin, on installation of selenium , selenium binaries compatible with Python 2.7 libs gets installed on running below command:

    sudo pip install selenium .

    Isn’t it be a better idea to install Python3.7 as proper install in /usr/bin instead of alternate install like above?

    • “make altinstall” intentionally installs in the alternate directory to preserve your distribution’s default python in the “normal” place. If you use “make install” instead, this will install the new python in the normal place replacing the default one that came with your distribution. HOWEVER, it is VERY LIKELY you will break several things in your distribution that depend on the version of python that came with your distribution. Use at your own risk.

      • I posted a comment before I saw this reply:
        I have a 16.04 version of Ubuntu which comes with python 3.5. I am not a python guy at all but I need python 3.7 to run an application. I would like to replace 3.5 with 3.7 in /usr/bin. The instructions on this page for downloading and creating python 3.7 seemed to work perfectly (thanks so much for that). However, I need 3.7 to be my default python3 version. I tried using ‘make install’ instead of ‘make altinstall’ to no effect. How do I do this?
        Regards.

  26. I follow all the instructions as given but I get this error when I do
    sudo make altinstal

    from _ctypes import Union, Structure, Array
    ModuleNotFoundError: No module named ‘_ctypes’
    Makefile:1140: recipe for target ‘altinstall’ failed
    make: *** [altinstall] Error 1

  27. Worked like a charm except i had to run `$ apt-get install libffi-dev` due to the build failing…may want to add to your notes. Thanks.

  28. When I try to build with pip I get this error.

    ./configure –enable-optimizations –with-ensurepip=install
    sudo make altinstall

    What does it mean?

    Exception:
    Traceback (most recent call last):
    File “/tmp/tmp24wspe96/pip-18.1-py2.py3-none-any.whl/pip/_internal/cli/base_command.py”, line 143, in main
    status = self.run(options, args)
    File “/tmp/tmp24wspe96/pip-18.1-py2.py3-none-any.whl/pip/_internal/commands/install.py”, line 259, in run
    with self._build_session(options) as session:
    File “/tmp/tmp24wspe96/pip-18.1-py2.py3-none-any.whl/pip/_internal/cli/base_command.py”, line 79, in _build_session
    insecure_hosts=options.trusted_hosts,
    File “/tmp/tmp24wspe96/pip-18.1-py2.py3-none-any.whl/pip/_internal/download.py”, line 337, in __init__
    self.headers[“User-Agent”] = user_agent()
    File “/tmp/tmp24wspe96/pip-18.1-py2.py3-none-any.whl/pip/_internal/download.py”, line 100, in user_agent
    zip([“name”, “version”, “id”], distro.linux_distribution()),
    File “/tmp/tmp24wspe96/pip-18.1-py2.py3-none-any.whl/pip/_vendor/distro.py”, line 120, in linux_distribution
    return _distro.linux_distribution(full_distribution_name)
    File “/tmp/tmp24wspe96/pip-18.1-py2.py3-none-any.whl/pip/_vendor/distro.py”, line 675, in linux_distribution
    self.version(),
    File “/tmp/tmp24wspe96/pip-18.1-py2.py3-none-any.whl/pip/_vendor/distro.py”, line 735, in version
    self.lsb_release_attr(‘release’),
    File “/tmp/tmp24wspe96/pip-18.1-py2.py3-none-any.whl/pip/_vendor/distro.py”, line 892, in lsb_release_attr
    return self._lsb_release_info.get(attribute, ”)
    File “/tmp/tmp24wspe96/pip-18.1-py2.py3-none-any.whl/pip/_vendor/distro.py”, line 550, in __get__
    ret = obj.__dict__[self._fname] = self._f(obj)
    File “/tmp/tmp24wspe96/pip-18.1-py2.py3-none-any.whl/pip/_vendor/distro.py”, line 998, in _lsb_release_info
    stdout = subprocess.check_output(cmd, stderr=devnull)
    File “/home/robert/src/Python-3.7.2/Lib/subprocess.py”, line 395, in check_output
    **kwargs).stdout
    File “/home/robert/src/Python-3.7.2/Lib/subprocess.py”, line 487, in run
    output=stdout, stderr=stderr)
    subprocess.CalledProcessError: Command ‘(‘lsb_release’, ‘-a’)’ returned non-zero exit status 1.
    Makefile:1140: recipe for target ‘altinstall’ failed
    make: *** [altinstall] Error 2

  29. I’m doing all that and in the end I’m still getting:

    pi@raspberrypi:/usr/src/Python-3.7.2 $ python3 –version
    Python 3.5.3

    It seems 3.7.2 didn’t get installed correctly??

  30. Hi Rahul, many thanks for your support,.
    I successfully installed Python 3.7.1 , but it works just on the terminal.
    Because I’m beginner I wish to use an easier interface: How can I install an IDE on my desktop?
    many Thanks.
    BR
    Daniele

  31. Hi ,

    When I follow the instruction , python3.7 is getting installed in usr/local/bin and not in usr/bin where other python versions are installed .
    Thus I have two questions

    1) Is it supposed to be installed at usr/bin or usr/local/bin ?
    2)when I use the command :
    ***
    virtualenv -p /usr/local/bin/python3.7 py37_test1
    ****
    to create a virtual env using python 3.7 , i get the following error :
    *****************
    Running virtualenv with interpreter /usr/local/bin/python3.7
    Using base prefix ‘/usr/local’
    New python executable in /home/rahul/py37_test1/bin/python3.7
    Also creating executable in /home/rahul/py37_test1/bin/python
    Installing setuptools, pip, wheel…

    Complete output from command /home/rahul/py37_test1/bin/python3.7 – setuptools pip wheel:
    Traceback (most recent call last):
    File “”, line 8, in
    File “/usr/local/lib/python2.7/dist-packages/virtualenv_support/pip-18.1-py2.py3-none-any.whl/pip/_internal/__init__.py”, line 40, in
    File “/usr/local/lib/python2.7/dist-packages/virtualenv_support/pip-18.1-py2.py3-none-any.whl/pip/_internal/cli/autocompletion.py”, line 8, in
    File “/usr/local/lib/python2.7/dist-packages/virtualenv_support/pip-18.1-py2.py3-none-any.whl/pip/_internal/cli/main_parser.py”, line 12, in
    File “/usr/local/lib/python2.7/dist-packages/virtualenv_support/pip-18.1-py2.py3-none-any.whl/pip/_internal/commands/__init__.py”, line 6, in
    File “/usr/local/lib/python2.7/dist-packages/virtualenv_support/pip-18.1-py2.py3-none-any.whl/pip/_internal/commands/completion.py”, line 6, in
    File “/usr/local/lib/python2.7/dist-packages/virtualenv_support/pip-18.1-py2.py3-none-any.whl/pip/_internal/cli/base_command.py”, line 18, in
    File “/usr/local/lib/python2.7/dist-packages/virtualenv_support/pip-18.1-py2.py3-none-any.whl/pip/_internal/download.py”, line 38, in
    File “/usr/local/lib/python2.7/dist-packages/virtualenv_support/pip-18.1-py2.py3-none-any.whl/pip/_internal/utils/glibc.py”, line 3, in
    File “/usr/local/lib/python3.7/ctypes/__init__.py”, line 7, in
    from _ctypes import Union, Structure, Array
    ModuleNotFoundError: No module named ‘_ctypes’

    During handling of the above exception, another exception occurred:

    Traceback (most recent call last):
    File “”, line 11, in
    ImportError: cannot import name ‘main’ from ‘pip’ (/usr/local/lib/python2.7/dist-packages/virtualenv_support/pip-18.1-py2.py3-none-any.whl/pip/__init__.py)
    —————————————-
    …Installing setuptools, pip, wheel…done.
    Traceback (most recent call last):
    File “/usr/local/lib/python2.7/dist-packages/virtualenv.py”, line 2462, in
    main()
    File “/usr/local/lib/python2.7/dist-packages/virtualenv.py”, line 762, in main
    symlink=options.symlink,
    File “/usr/local/lib/python2.7/dist-packages/virtualenv.py”, line 1015, in create_environment
    install_wheel(to_install, py_executable, search_dirs, download=download)
    File “/usr/local/lib/python2.7/dist-packages/virtualenv.py”, line 968, in install_wheel
    call_subprocess(cmd, show_stdout=False, extra_env=env, stdin=SCRIPT)
    File “/usr/local/lib/python2.7/dist-packages/virtualenv.py”, line 854, in call_subprocess
    raise OSError(“Command {} failed with error code {}”.format(cmd_desc, proc.returncode))
    OSError: Command /home/rahul/py37_test1/bin/python3.7 – setuptools pip wheel failed with error code 1

    **********

    How can I create a virtual env using python3.7

  32. Thanks for this. I had to ‘sudo apt-get install libffi-dev’ as well to make the install complete without errors, missed ctypes module otherwise.

  33. Awesome instructions, straight and to the point. I would only add for beginners ‘you need to be a bit patient while doing ‘sudo make altinstall’.`

  34. The directory ‘/home/nikolay/.cache/pip/http’ or its parent directory is not owned by the current user and the cache has been disabled. Please check the permissions and owner of that directory. If executing pip with sudo, you may want sudo’s -H flag.
    The directory ‘/home/nikolay/.cache/pip’ or its parent directory is not owned by the current user and caching wheels has been disabled. check the permissions and owner of that directory. If executing pip with sudo, you may want sudo’s -H flag.

    what does this means?

  35. Didn’t work here…
    The following error appears at the end of the ‘sudo make altinstall’:

    ModuleNotFoundError: No module named ‘_ctypes’
    Makefile:1132: recipe for target ‘altinstall’ failed
    make: *** [altinstall] Error 1

    • I had the same error. Works with:

      sudo apt-get install build-essential libsqlite3-dev sqlite3 bzip2 libbz2-dev zlib1g-dev libssl-dev openssl libgdbm-dev libgdbm-compat-dev liblzma-dev libreadline-dev libncursesw5-dev libffi-dev uuid-dev

      or

      sudo apt-get install libffi-dev

      https://bugs.python.org/issue31652

  36. HTTP request sent, awaiting response… 200 OK
    Length: 19611207 (19M) [application/octet-stream]
    Python-3.4.5.tgz: Permission denied

    Cannot write to ‘Python-3.4.5.tgz’ (Success).

    help?

  37. Hey,

    The tutorial is easy enough to follow, and I went till the following command:
    sudo make altinstall
    But it goes into an infinite loop, and it never ends.
    Actually the following line keep appearing after 2-3 min :
    /bin/sh ./configure
    PS: I’m trying to install it in Debian(wheezy) in beaglebone black.

    Thanks

  38. Thanks Rahul,

    Very easy to follow instructions. Note to self: if at first it doesn’t work, sudo it and try again 🙂

    Thanks again.

    • dimasputra@dimasputra-desktop:/usr/src$ sudo tar xzf Python-3.4.4.tgz
      tar (child): Python-3.4.4.tgz: Cannot open: No such file or directory
      tar (child): Error is not recoverable: exiting now
      tar: Child returned status 2
      tar: Error is not recoverable: exiting now

  39. Grate example how to install python. One small detail…. you can’t highlight the text in black windows and copy in to terminal. Every thing need to be retyped.
    Can you review that article and just place the comments as regular text?

    Regards.

  40. Thanks for the well explained instructions. I only had trouble extracting the tar but added sudo and everything worked as it should.

    Thanks again

  41. Hi Rahul:

    Thank you for your easy to follow tutorial. I get this response:

    The directory ‘/home/xxxxx/.cache/pip/http’ or its parent directory is not owned by the current user and the cache has been disabled. Please check the permissions and owner of that directory. If executing pip with sudo, you may want sudo’s -H flag.

    The directory ‘/home/xxxxx/.cache/pip’ or its parent directory is not owned by the current user and caching wheels has been disabled. check the permissions and owner of that directory. If executing pip with sudo, you may want sudo’s -H flag.

    after entering: sudo make altinstall

    I’m a newbie to Linux (Lubuntu) and Python. Please help. Thank you.

    BTW, the OS came with python 2.7.6 installed. Can/do I remove it, if so how?

Exit mobile version