diff --git a/Control/AthenaPython/CMakeLists.txt b/Control/AthenaPython/CMakeLists.txt
index 8dbf7e78b142f3c9a454236970b2d57a96d04e35..4146c992634abe53bf3cf23b7f9f626f9e9b68c3 100644
--- a/Control/AthenaPython/CMakeLists.txt
+++ b/Control/AthenaPython/CMakeLists.txt
@@ -16,7 +16,7 @@ atlas_depends_on_subdirs( PUBLIC
                           Control/DataModelRoot )
 
 # External dependencies:
-find_package( PythonLibs )
+find_package( Python COMPONENTS Development )
 find_package( ROOT COMPONENTS Core Tree MathCore Hist RIO pthread PyROOT )
 
 # Component(s) in the package:
diff --git a/Control/AthenaServices/CMakeLists.txt b/Control/AthenaServices/CMakeLists.txt
index 37b4bfe48dab7fce7199c6cb66502f589741433e..4665818c44553ca628caca5b52b5032c3c9d7848 100644
--- a/Control/AthenaServices/CMakeLists.txt
+++ b/Control/AthenaServices/CMakeLists.txt
@@ -32,7 +32,7 @@ atlas_depends_on_subdirs(
 # External dependencies:
 find_package( Boost COMPONENTS thread )
 find_package( CLHEP )
-find_package( PythonLibs )
+find_package( Python COMPONENTS Development )
 find_package( yampl )
 
 # Component(s) in the package:
diff --git a/Control/Hephaestus/CMakeLists.txt b/Control/Hephaestus/CMakeLists.txt
index 5f744f1bfa31c080a938403b62d32c902b792966..82e542b1139a575395d4cd1bd21e54cd61140c86 100644
--- a/Control/Hephaestus/CMakeLists.txt
+++ b/Control/Hephaestus/CMakeLists.txt
@@ -7,7 +7,7 @@ atlas_subdir( Hephaestus )
 
 # External dependencies:
 find_package( Boost )
-find_package( PythonLibs )
+find_package( Python COMPONENTS Development )
 find_package( libunwind )
 
 # Component(s) in the package:
diff --git a/Control/PerformanceMonitoring/PerfMonComps/CMakeLists.txt b/Control/PerformanceMonitoring/PerfMonComps/CMakeLists.txt
index da2fb50fa5418d752236d3ac8329fdcb51175b83..50c9353666a73df6ba99d3c4e4ee44b552fafb1a 100644
--- a/Control/PerformanceMonitoring/PerfMonComps/CMakeLists.txt
+++ b/Control/PerformanceMonitoring/PerfMonComps/CMakeLists.txt
@@ -22,7 +22,7 @@ atlas_depends_on_subdirs(
 # External dependencies:
 find_package( AIDA )
 find_package( Boost )
-find_package( PythonLibs )
+find_package( Python COMPONENTS Development )
 find_package( ROOT COMPONENTS Core PyROOT )
 find_package( nlohmann_json )
 
diff --git a/Control/PerformanceMonitoring/PerfMonEvent/CMakeLists.txt b/Control/PerformanceMonitoring/PerfMonEvent/CMakeLists.txt
index b71e7773dfbe6901d2d75b8ff8c0eaad2489ebd6..4f034c34c22d18d55bd56ab5757a2f41a255aab9 100644
--- a/Control/PerformanceMonitoring/PerfMonEvent/CMakeLists.txt
+++ b/Control/PerformanceMonitoring/PerfMonEvent/CMakeLists.txt
@@ -10,7 +10,7 @@ atlas_depends_on_subdirs( PUBLIC
                           GaudiKernel )
 
 # External dependencies:
-find_package( PythonLibs )
+find_package( Python COMPONENTS Development )
 find_package( ROOT COMPONENTS Core Tree MathCore Hist RIO pthread )
 
 # We don't have a direct dependency on boost from this package, but if we
diff --git a/Control/PyKernel/CMakeLists.txt b/Control/PyKernel/CMakeLists.txt
index d07cfaafd28149c75e22e31ad4ccbde7d943d2dc..7bb861fa7c8494f6d34a1e074fa721c8ec9eb3dc 100644
--- a/Control/PyKernel/CMakeLists.txt
+++ b/Control/PyKernel/CMakeLists.txt
@@ -6,7 +6,7 @@
 atlas_subdir( PyKernel )
 
 # External dependencies:
-find_package( PythonLibs )
+find_package( Python COMPONENTS Development )
 find_package( ROOT COMPONENTS Core Tree MathCore Hist RIO pthread )
 
 # Component(s) in the package:
diff --git a/Control/RootUtils/CMakeLists.txt b/Control/RootUtils/CMakeLists.txt
index b0cad61cea617b9ef95813ceb3bdf345d471d6de..eb8cd357a546b47d86e9e7635eb883f68719dc71 100644
--- a/Control/RootUtils/CMakeLists.txt
+++ b/Control/RootUtils/CMakeLists.txt
@@ -13,7 +13,7 @@ atlas_depends_on_subdirs( PUBLIC
 
 # External dependencies:
 find_package( Boost COMPONENTS filesystem thread system )
-find_package( PythonLibs )
+find_package( Python COMPONENTS Development )
 find_package( ROOT COMPONENTS RIO Hist Tree PyROOT Core MathCore pthread )
 string( REPLACE PyROOT Core ROOT_LIBRARIES_NOPYROOT "${ROOT_LIBRARIES}" )
 
diff --git a/Control/StoreGateBindings/CMakeLists.txt b/Control/StoreGateBindings/CMakeLists.txt
index 0aec821a9e29b7d49f8de72e36101fba6386cdd5..289794d2f5bd58becc8a78b3a6870dafd06e40ea 100644
--- a/Control/StoreGateBindings/CMakeLists.txt
+++ b/Control/StoreGateBindings/CMakeLists.txt
@@ -15,7 +15,7 @@ atlas_depends_on_subdirs( PRIVATE
                           GaudiKernel )
 
 # External dependencies:
-find_package( PythonLibs )
+find_package( Python COMPONENTS Development )
 find_package( ROOT COMPONENTS PyROOT Core Tree MathCore Hist RIO pthread )
 
 # Component(s) in the package:
diff --git a/DataQuality/DQUtils/CMakeLists.txt b/DataQuality/DQUtils/CMakeLists.txt
index 9f521282ffcac4663407ca10bc0477c85d9096b1..33ef6e8a44a60cd9b5ef4285a97e7bd23e529e06 100644
--- a/DataQuality/DQUtils/CMakeLists.txt
+++ b/DataQuality/DQUtils/CMakeLists.txt
@@ -14,7 +14,7 @@ find_package( Boost COMPONENTS filesystem thread system )
 find_package( COOL COMPONENTS CoolKernel CoolApplication )
 find_package( CORAL COMPONENTS CoralBase CoralKernel RelationalAccess )
 find_package( Oracle )
-find_package( PythonLibs )
+find_package( Python COMPONENTS Development )
 find_package( ROOT COMPONENTS Core Tree MathCore Hist RIO pthread )
 find_package( six )
 find_package( sqlalchemy )
diff --git a/HLT/Trigger/TrigControl/TrigPSC/CMakeLists.txt b/HLT/Trigger/TrigControl/TrigPSC/CMakeLists.txt
index fa76bd3206658d38401eab01eb665603f6ca0f41..5592e15dc911c3b9a8ded0e92689a3d4efc75224 100644
--- a/HLT/Trigger/TrigControl/TrigPSC/CMakeLists.txt
+++ b/HLT/Trigger/TrigControl/TrigPSC/CMakeLists.txt
@@ -16,7 +16,7 @@ atlas_depends_on_subdirs( PUBLIC
 
 # External dependencies:
 find_package( Boost COMPONENTS filesystem thread system )
-find_package( PythonLibs )
+find_package( Python COMPONENTS Development )
 find_package( tdaq-common COMPONENTS ers eformat eformat_write hltinterface )
 
 # Component(s) in the package:
diff --git a/MuonSpectrometer/MuonCalib/MuonCalibJobTransforms/CMakeLists.txt b/MuonSpectrometer/MuonCalib/MuonCalibJobTransforms/CMakeLists.txt
index 437ce8746ead75156ca7e5f3c572d755ebf3cbda..60a7de2ec5133eb94b6371ce6fed1c69480714d6 100644
--- a/MuonSpectrometer/MuonCalib/MuonCalibJobTransforms/CMakeLists.txt
+++ b/MuonSpectrometer/MuonCalib/MuonCalibJobTransforms/CMakeLists.txt
@@ -9,9 +9,6 @@ atlas_subdir( MuonCalibJobTransforms )
 atlas_depends_on_subdirs( PUBLIC
                           Tools/PyJobTransformsCore )
 
-# External dependencies:
-find_package( PythonLibs )
-
 # Install files from the package:
 atlas_install_python_modules( python/*.py )
 atlas_install_runtime( share/RT_default_comm.dat )
diff --git a/PhysicsAnalysis/AnalysisCommon/AnalysisTools/CMakeLists.txt b/PhysicsAnalysis/AnalysisCommon/AnalysisTools/CMakeLists.txt
index 76a1938458f6e127467c2868e40d567509474e84..343f2910804b44b5c7d52af53a5c91d6a4f1f699 100644
--- a/PhysicsAnalysis/AnalysisCommon/AnalysisTools/CMakeLists.txt
+++ b/PhysicsAnalysis/AnalysisCommon/AnalysisTools/CMakeLists.txt
@@ -24,7 +24,7 @@ atlas_depends_on_subdirs( PUBLIC
 
 # External dependencies:
 find_package( CORAL COMPONENTS CoralBase CoralKernel RelationalAccess )
-find_package( PythonLibs )
+find_package( Python COMPONENTS Development )
 find_package( ROOT COMPONENTS Core Tree MathCore Hist RIO pthread )
 
 # Component(s) in the package:
diff --git a/PhysicsAnalysis/PyAnalysis/PyAnalysisExamples/CMakeLists.txt b/PhysicsAnalysis/PyAnalysis/PyAnalysisExamples/CMakeLists.txt
index 6ad1dc198ffc23423477fb868f8cf5fb866e01c0..1846255fe0555de0da58cbdbf20f654f2183903d 100644
--- a/PhysicsAnalysis/PyAnalysis/PyAnalysisExamples/CMakeLists.txt
+++ b/PhysicsAnalysis/PyAnalysis/PyAnalysisExamples/CMakeLists.txt
@@ -18,7 +18,7 @@ atlas_depends_on_subdirs( PUBLIC
 
 # External dependencies:
 find_package( CLHEP )
-find_package( PythonLibs )
+find_package( Python COMPONENTS Development )
 find_package( ROOT COMPONENTS Core Tree MathCore Hist RIO pthread )
 
 # Component(s) in the package:
diff --git a/PhysicsAnalysis/TruthParticleID/McParticleUtils/CMakeLists.txt b/PhysicsAnalysis/TruthParticleID/McParticleUtils/CMakeLists.txt
index 21b5fd99a04d30fff02bd7e881babdd9d5f9841f..94a4b7208d8d29d8c392e2d62f76c1f8345ae795 100644
--- a/PhysicsAnalysis/TruthParticleID/McParticleUtils/CMakeLists.txt
+++ b/PhysicsAnalysis/TruthParticleID/McParticleUtils/CMakeLists.txt
@@ -23,7 +23,7 @@ find_package( CLHEP )
 find_package( CppUnit )
 find_package( HepMC )
 find_package( HepPDT )
-find_package( PythonLibs )
+find_package( Python COMPONENTS Development )
 
 # Component(s) in the package:
 atlas_add_library( McParticleUtils
diff --git a/Projects/AnalysisTop/CMakeLists.txt b/Projects/AnalysisTop/CMakeLists.txt
index fbfcbe790ea22eec9bc61ba02ac070129b6acc93..4215f92b2a1f8df2d61da6f9e60c97fa54503cf7 100644
--- a/Projects/AnalysisTop/CMakeLists.txt
+++ b/Projects/AnalysisTop/CMakeLists.txt
@@ -21,7 +21,7 @@ find_package( AnalysisBaseExternals REQUIRED )
 # Find Python. This is needed because AnalysisBaseExternals sets up
 # a wrong value for PYTHONHOME. And nothing in AnalysisBase builds
 # against Python to correct it.
-find_package( PythonInterp )
+find_package( Python COMPONENTS Interpreter )
 
 # Add the project's modules directory to CMAKE_MODULE_PATH:
 list( INSERT CMAKE_MODULE_PATH 0 ${CMAKE_SOURCE_DIR}/modules )
diff --git a/Projects/VP1Light/CMakeLists.txt b/Projects/VP1Light/CMakeLists.txt
index 77b4a153674493abed660104d4698c01ce5460b8..b923d66bd636ec0dd8b059d6162ae0ac27f69c8e 100644
--- a/Projects/VP1Light/CMakeLists.txt
+++ b/Projects/VP1Light/CMakeLists.txt
@@ -20,7 +20,7 @@ find_package( VP1LightExternals REQUIRED )
 # Find Python. This is needed because VP1LightExternals sets up
 # a wrong value for PYTHONHOME. And nothing in VP1Light builds
 # against Python to correct it.
-find_package( PythonInterp )
+find_package( Python COMPONENTS Interpreter )
 
 find_package( ROOT COMPONENTS Physics Core Tree MathCore Hist RIO pthread
                               GenVector REQUIRED )
diff --git a/Reconstruction/RecJobTransforms/CMakeLists.txt b/Reconstruction/RecJobTransforms/CMakeLists.txt
index 43f033fb7a6adb877b6710969e72c56f27d2cca4..7171f8312650f9081d9cf24dfaf34925ebc7dd9a 100644
--- a/Reconstruction/RecJobTransforms/CMakeLists.txt
+++ b/Reconstruction/RecJobTransforms/CMakeLists.txt
@@ -10,9 +10,6 @@ atlas_depends_on_subdirs( PUBLIC
                           Tools/PyJobTransforms
                           Tools/PyJobTransformsCore )
 
-# External dependencies:
-find_package( PythonLibs )
-
 # Install files from the package:
 atlas_install_python_modules( python/*.py )
 atlas_install_joboptions( share/*.py )
diff --git a/Simulation/SimuJobTransforms/CMakeLists.txt b/Simulation/SimuJobTransforms/CMakeLists.txt
index 74274ea82ca970410ae9af9653b9c340d4702263..c2f199469f0e97ba92aec7d3aec33dd559d6a8a5 100644
--- a/Simulation/SimuJobTransforms/CMakeLists.txt
+++ b/Simulation/SimuJobTransforms/CMakeLists.txt
@@ -9,9 +9,6 @@ atlas_subdir( SimuJobTransforms )
 atlas_depends_on_subdirs( PUBLIC
                           Tools/PyJobTransforms )
 
-# External dependencies:
-find_package( PythonLibs )
-
 # Install files from the package:
 atlas_install_python_modules( python/*.py )
 atlas_install_joboptions( share/*.py )
diff --git a/Tools/FullChainTransforms/CMakeLists.txt b/Tools/FullChainTransforms/CMakeLists.txt
index 0260efdfd6c8a9554da2f25a2c51aa8aa3c2ec72..ec92bf021352f81b895b0f34a759e45ea0824f28 100644
--- a/Tools/FullChainTransforms/CMakeLists.txt
+++ b/Tools/FullChainTransforms/CMakeLists.txt
@@ -12,9 +12,6 @@ atlas_depends_on_subdirs( PUBLIC
                           Simulation/SimuJobTransforms
                           Tools/PyJobTransforms )
 
-# External dependencies:
-find_package( PythonLibs )
-
 # Install files from the package:
 atlas_install_python_modules( python/*.py )
 atlas_install_joboptions( share/*.py )
diff --git a/Tools/JobTransforms/CMakeLists.txt b/Tools/JobTransforms/CMakeLists.txt
index d7d8fedbbc6087973238ff57bfb52d6d99845d79..e26f91c0bd966783c8de54e9573c69fcb634950b 100644
--- a/Tools/JobTransforms/CMakeLists.txt
+++ b/Tools/JobTransforms/CMakeLists.txt
@@ -5,5 +5,3 @@
 # Declare the package name:
 atlas_subdir( JobTransforms )
 
-# External dependencies:
-find_package( PythonLibs )
diff --git a/Tools/PyJobTransforms/CMakeLists.txt b/Tools/PyJobTransforms/CMakeLists.txt
index ac5258b35021019a8adeb38471aaceeb9482cdd3..09ab378aaaa0351e895398f27829d2dd37920d6c 100644
--- a/Tools/PyJobTransforms/CMakeLists.txt
+++ b/Tools/PyJobTransforms/CMakeLists.txt
@@ -6,7 +6,6 @@
 atlas_subdir( PyJobTransforms )
 
 # External dependencies:
-find_package( PythonLibs )
 find_package( cx_Oracle )
 
 # Install files from the package:
diff --git a/Tools/PyJobTransformsCore/CMakeLists.txt b/Tools/PyJobTransformsCore/CMakeLists.txt
index c88177c9319b45459d96d018a62ce0d35b6cfdb8..be59de15822bebb774e74c82c26b8c1911960ee8 100644
--- a/Tools/PyJobTransformsCore/CMakeLists.txt
+++ b/Tools/PyJobTransformsCore/CMakeLists.txt
@@ -5,9 +5,6 @@
 # Declare the package name:
 atlas_subdir( PyJobTransformsCore )
 
-# External dependencies:
-find_package( PythonLibs )
-
 # Install files from the package:
 atlas_install_python_modules( python/*.py )
 atlas_install_scripts( share/slimmetadata share/checklog.py share/find_*.py share/trf_ls python/envutil.py )
diff --git a/Tools/PyUtils/CMakeLists.txt b/Tools/PyUtils/CMakeLists.txt
index 8593d7c2f6a450ce50c94ead030426702315a0ec..9b1a84ec04d4c760bf81a2b3955636bb73158f1f 100644
--- a/Tools/PyUtils/CMakeLists.txt
+++ b/Tools/PyUtils/CMakeLists.txt
@@ -11,7 +11,6 @@ atlas_depends_on_subdirs( PUBLIC
                           )
 
 # External dependencies:
-find_package( PythonLibs )
 find_package( requests )
 find_package( six )
 find_package( ROOT COMPONENTS Core PyROOT Tree MathCore Hist RIO pthread )
diff --git a/Trigger/TrigConfiguration/TrigConfDBConnection/CMakeLists.txt b/Trigger/TrigConfiguration/TrigConfDBConnection/CMakeLists.txt
index a2dc099cd221959be0a30a06d2673d82481e4bc6..923695817554b91b3b23fbde3fc478c6672ea356 100644
--- a/Trigger/TrigConfiguration/TrigConfDBConnection/CMakeLists.txt
+++ b/Trigger/TrigConfiguration/TrigConfDBConnection/CMakeLists.txt
@@ -7,7 +7,7 @@ atlas_subdir( TrigConfDBConnection )
 
 # External dependencies:
 find_package( Frontier_Client )
-find_package( PythonLibs )
+find_package( Python COMPONENTS Development )
 find_package( Boost COMPONENTS filesystem thread system
               OPTIONAL_COMPONENTS python${PYTHON_VERSION_MAJOR}${PYTHON_VERSION_MINOR} )
 
diff --git a/Trigger/TrigT1/L1Common/CMakeLists.txt b/Trigger/TrigT1/L1Common/CMakeLists.txt
index acee5bf504fcca84681fbe034f119049b942b9fe..2fce26ec0dcaca61fcdfab899ed864a89be6d3aa 100644
--- a/Trigger/TrigT1/L1Common/CMakeLists.txt
+++ b/Trigger/TrigT1/L1Common/CMakeLists.txt
@@ -13,7 +13,7 @@ if( ATLAS_RELEASE_MODE )
 endif()
 
 # Find the necessary externals:
-find_package( PythonInterp )
+find_package( Python COMPONENTS Interpreter )
 
 # The generator used to produce header files:
 set( _generator ${CMAKE_CURRENT_SOURCE_DIR}/scripts/XMLtoHeader.py )