diff --git a/Lib/test/test_tools.py b/Lib/test/test_tools.py
index f971515..1bf7d54 100644
--- a/Lib/test/test_tools.py
+++ b/Lib/test/test_tools.py
@@ -6,6 +6,7 @@
 
 import os
 import sys
+import importlib._bootstrap
 import importlib.machinery
 import unittest
 from unittest import mock
@@ -405,8 +406,8 @@
     @classmethod
     def setUpClass(self):
         path = os.path.join(scriptsdir, 'pdeps.py')
-        loader = importlib.machinery.SourceFileLoader('pdeps', path)
-        self.pdeps = loader.load_module()
+        spec = importlib.util.spec_from_file_location('pdeps', path)
+        self.pdeps = importlib._bootstrap._SpecMethods(spec).load()
 
     @classmethod
     def tearDownClass(self):
@@ -430,8 +431,8 @@
 
     def setUp(self):
         path = os.path.join(scriptsdir, 'gprof2html.py')
-        loader = importlib.machinery.SourceFileLoader('gprof2html', path)
-        self.gprof = loader.load_module()
+        spec = importlib.util.spec_from_file_location('gprof2html', path)
+        self.gprof = importlib._bootstrap._SpecMethods(spec).load()
         oldargv = sys.argv
         def fixup():
             sys.argv = oldargv
diff --git a/Misc/NEWS b/Misc/NEWS
index e56f9ce2..e048888 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -255,6 +255,8 @@
 - Issue #6477: Added support for pickling the types of built-in singletons
   (i.e., Ellipsis, NotImplemented, None).
 
+- Issue #19713: Move away from using find_module/load_module.
+
 - Issue #19851: Fixed a regression in reloading sub-modules.
 
 - ssl.create_default_context() sets OP_NO_COMPRESSION to prevent CRIME.
diff --git a/setup.py b/setup.py
index 102d4ea..448d605 100644
--- a/setup.py
+++ b/setup.py
@@ -3,6 +3,8 @@
 
 import sys, os, importlib.machinery, re, optparse
 from glob import glob
+import importlib._bootstrap
+import importlib.util
 import sysconfig
 
 from distutils import log
@@ -327,8 +329,10 @@
             return
 
         loader = importlib.machinery.ExtensionFileLoader(ext.name, ext_filename)
+        spec = importlib.util.spec_from_file_location(ext.name, ext_filename,
+                                                      loader=loader)
         try:
-            loader.load_module()
+            importlib._bootstrap._SpecMethods(spec).load()
         except ImportError as why:
             self.failed.append(ext.name)
             self.announce('*** WARNING: renaming "%s" since importing it'
