Posit - Install Python From Source
Python is not Posit Software and is included in Third Party Materials (as defined in our EULA) and not covered under the Posit Support Agreement. If you download Python, you are agreeing to their license and acknowledge Posit is not responsible for Python and you are downloading Python at your sole risk.
Before you begin
Posit recommends installing Python appropriately from pre-compiled binaries using the Install Python procedures.
Install required dependencies
First, enable the optional and required repositories by following these steps:
Enable the Extra Packages for Enterprise Linux (EPEL) repository:
sudo dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm
Enable the CodeReady Linux Builder repository:
sudo subscription-manager repos --enable codeready-builder-for-rhel-9-$(arch)-rpms
# enable the CodeReady Linux Builder repository from Red Hat Update Infrastructure (RHUI)
sudo dnf install dnf-plugins-core
sudo dnf config-manager --set-enabled codeready-builder-for-rhel-9-*-rpms
Enable the Extra Packages for Enterprise Linux (EPEL) repository
sudo yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
Enable the CodeReady Linux Builder repository:
sudo subscription-manager repos --enable codeready-builder-for-rhel-8-x86_64-rpms
# enable the CodeReady Linux Builder repository from Red Hat Update Infrastructure (RHUI)
sudo dnf install dnf-plugins-core
sudo dnf config-manager --set-enabled "codeready-builder-for-rhel-8-*-rpms"
Next, use the following commands to install the dependencies required to build and run Python for your Linux distribution:
sudo yum-builddep python3
sudo yum install wget yum-utils make gcc openssl-devel bzip2-devel libffi-devel zlib-devel
sudo apt-get update
sudo apt-get install \
\
curl \
gcc \
libbz2-dev \
libev-dev \
libffi-dev \
libgdbm-dev \
liblzma-dev \
libncurses-dev \
libreadline-dev \
libsqlite3-dev \
libssl-dev \
make \
tk-dev \
wget zlib1g-dev
sudo zypper install \
\
automake \
fdupes \
gcc \
gcc-c++ \
gcc-fortran \
gdbm-devel \
gettext-tools \
gmp-devel \
intltool \
libbz2-devel \
libexpat-devel \
libffi-devel \
libnsl-devel \
lzma-devel \
make \
ncurses-devel \
netcfg \
openssl-devel \
pkgconfig \
readline-devel \
sqlite-devel \
xz zlib-devel
Specify Python version
Specify the version of Python that you want to install:
export PYTHON_VERSION=3.12.4
export PYTHON_MAJOR=3
Python.org lists the available versions of Python.
Download and extract Python
Download and extract Python. Then, navigate into the Python directory:
curl -O https://www.python.org/ftp/python/${PYTHON_VERSION}/Python-${PYTHON_VERSION}.tgz
tar -xvzf Python-${PYTHON_VERSION}.tgz
cd Python-${PYTHON_VERSION}
Build and install Python
Configure, make, and install Python:
./configure \
--prefix=/opt/python/${PYTHON_VERSION} \
--enable-shared \
--enable-optimizations \
--enable-ipv6 \
${PYTHON_VERSION}/lib,--disable-new-dtags
LDFLAGS=-Wl,-rpath=/opt/python/
make
sudo make install
Install pip
Install pip
into the version of Python that you just installed:
curl -O https://bootstrap.pypa.io/get-pip.py
sudo /opt/python/${PYTHON_VERSION}/bin/python${PYTHON_MAJOR} get-pip.py
Verify Python installation
Verify that Python is installed by running the following command:
/opt/python/${PYTHON_VERSION}/bin/python${PYTHON_MAJOR} --version
(Optional) Add Python to the system PATH
You can configure Python on the system PATH
so that users can use pip
within a terminal to install packages to their home directory, similar to how R works with install.packages()
.
The recommended method to add Python to the PATH
is to append the version of Python that you installed to the system-wide PATH
variable. For example, define this in a script within the /etc/profile.d/
directory (where <PYTHON-VERSION>
is the version of Python that you installed earlier):
File: /etc/profile.d/python.sh
PATH=/opt/python/<PYTHON-VERSION>/bin/:$PATH
(Optional) Install multiple versions of Python
If you want to install multiple versions of Python on the same server, repeat these steps to specify, download, and install a different version of Python alongside existing versions.
Uninstall
sudo rm -rf /opt/path-to-installation/