Consider the container created by the dockerfile:
FROM ubuntu:latest
RUN apt update && apt install -y wget gpg python3.8-dev python3.9-dev gcc g++ make
RUN wget -O - https://apt.kitware.com/keys/kitware-archive-latest.asc 2>/dev/null | gpg --dearmor - | tee /usr/share/keyrings/kitware-archive-keyring.gpg >/dev/null && \
echo 'deb [signed-by=/usr/share/keyrings/kitware-archive-keyring.gpg] https://apt.kitware.com/ubuntu/ focal main' | tee /etc/apt/sources.list.d/kitware.list >/dev/null && \
apt-get update && apt-get install -y cmake
COPY CMakeLists.txt .
RUN cmake -S . -B build
with CMakeLists.txt:
cmake_minimum_required(VERSION 3.21)
project(test_python_3)
include(FindPython3)
find_package(Python3 3.8 EXACT REQUIRED COMPONENTS Interpreter Development)
i.e., python3.9 and python3.8 are both installed, but I want python 3.8 specifically.
I get the error:
-- Found Python3: /usr/bin/python3.9 (found version "3.9.5") found components: Interpreter
CMake Error at sr/share/cmake-3.22/Modules/FindPackageHandleStandardArgs.cmake:230 (message):
Could NOT find Python3: Found unsuitable version "3.9.5", but required is
exact version "3.8" (found /usr/bin/python3.9, found components:
Interpreter Development Development.Module Development.Embed)
Call Stack (most recent call first):
sr/share/cmake-3.22/Modules/FindPackageHandleStandardArgs.cmake:592 (_FPHSA_FAILURE_MESSAGE)
sr/share/cmake-3.22/Modules/FindPython/Support.cmake:3166 (find_package_handle_standard_args)
sr/share/cmake-3.22/Modules/FindPython3.cmake:485 (include)
CMakeLists.txt:4 (find_package)
Is this the expected behavior?