How would I build python myself from source code on Ubuntu?

Ubuntu comes with Python 2.7.2+ pre-installed. (I also downloaded the python dev packages.) Because of another issue I’m having (Explained in extreme depth in How do I replace/update the version of the expat library used by Apache? ), Graham Dumpleton told me my distro had explicitly built Python in a way to use an external pyexpat implementation, so causing my issue. He also said I could build Python myself from source code to resolve the issue. How would I do this on Ubuntu? (Keep in mind I’m new to Linux.)

Answers:

Thank you for visiting the Q&A section on Magenaut. Please note that all the answers may not help you solve the issue immediately. So please treat them as advisements. If you found the post helpful (or not), leave a comment & I’ll get back to you as soon as possible.

Method 1

  1. At a shell prompt (in a terminal), run
    sudo apt-get install build-essential

    This will fetch all the common packages you need to build anything (e.g. the compiler etc.).

  2. Then run
    sudo apt-get build-dep python2.7

    This will fetch all the libraries you need to build python.

  3. Then download the source code for python and decompress it into a directory.
  4. go there and run
    ./configure --prefix=/path/where/you/want/python/installed
  5. Then make and then make install to get it built and installed:
    make && make install

If you hit snags on the way, ask back here and I’ll try to offer some guidance.

Method 2

The best way to build “hot” very recent python (from github) is as follows:

  sudo apt-get update 
  && sudo apt-get install -y build-essential git libexpat1-dev libssl-dev zlib1g-dev 
  libncurses5-dev libbz2-dev liblzma-dev 
  libsqlite3-dev libffi-dev tcl-dev linux-headers-generic libgdbm-dev 
  libreadline-dev tk tk-dev

  git clone https://github.com/python/cpython.git
  cd cpython && ./configure --prefix=/usr 
  --enable-loadable-sqlite-extensions 
  --enable-shared 
  --with-lto 
  --enable-optimizations 
  --with-system-expat 
  --with-system-ffi 
  --enable-ipv6 --with-threads --with-pydebug --disable-rpath 
  && make 
  && sudo make install

It builds the very recent python from the sources on github.

With this I have built Python 3.8.0a0 (heads/master:077059e0f0, Aug 10 2018, 21:36:32).

Method 3

You may try using pyenv. I haven’t tried it yet. But looking at the sources, it seems very mature to accomplish an installation of any CPython-interpreter on any *ix-system.

Method 4

The superior solution to building Python yourself is pythonbrew, which automates the process and also allows you to not only install several different versions, but also easily select between them.

In 2016, pyenv and PyRun are the most viable solutions.

Method 5

You can use checkinstall to install from source code instead of make install.

Once you download the source code, navigate to the home folder and use below commands

./configure
make
sudo checkinstall

This creates a debian / RPM package and then installs it. Checkinstall keeps a tab of all the files modifications and dependencies and makes the whole uninstalling process easier. Since you have a .deb package, it’s much easier to install on many systems and handle with a package manager.

Source : Checkinstall – install from source code


All methods was sourced from stackoverflow.com or stackexchange.com, is licensed under cc by-sa 2.5, cc by-sa 3.0 and cc by-sa 4.0

0 0 votes
Article Rating
Subscribe
Notify of
guest

0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x