diff --git a/Lib/packaging/install.py b/Lib/packaging/install.py
index 2317645..c5bda45 100644
--- a/Lib/packaging/install.py
+++ b/Lib/packaging/install.py
@@ -13,7 +13,7 @@
 import shutil
 import logging
 import tempfile
-from sysconfig import get_config_var, get_path
+from sysconfig import get_config_var, get_path, is_python_build
 
 from packaging import logger
 from packaging.dist import Distribution
@@ -488,20 +488,31 @@
 
     Returns True on success, False on failure
     """
+    if is_python_build():
+        # Python would try to install into the site-packages directory under
+        # $PREFIX, but when running from an uninstalled code checkout we don't
+        # want to create directories under the installation root
+        message = ('installing third-party projects from an uninstalled '
+                   'Python is not supported')
+        logger.error(message)
+        return False
+
     logger.info('Checking the installation location...')
     purelib_path = get_path('purelib')
+
     # trying to write a file there
     try:
         with tempfile.NamedTemporaryFile(suffix=project,
                                          dir=purelib_path) as testfile:
             testfile.write(b'test')
     except OSError:
-        # was unable to write a file
+        # FIXME this should check the errno, or be removed altogether (race
+        # condition: the directory permissions could be changed between here
+        # and the actual install)
         logger.info('Unable to write in "%s". Do you have the permissions ?'
                     % purelib_path)
         return False
 
-
     logger.info('Getting information about %r...', project)
     try:
         info = get_infos(project)
diff --git a/Lib/packaging/tests/test_install.py b/Lib/packaging/tests/test_install.py
index c50a45e..35733c8 100644
--- a/Lib/packaging/tests/test_install.py
+++ b/Lib/packaging/tests/test_install.py
@@ -1,5 +1,7 @@
 """Tests for the packaging.install module."""
 import os
+import logging
+from sysconfig import is_python_build
 from tempfile import mkstemp
 
 from packaging import install
@@ -357,9 +359,17 @@
             install._install_dist = old_install_dist
 
     def test_install_permission_denied(self):
-        # if we don't have the access to the installation
-        # path, we should abort immediatly
+        # if we don't have access to the installation path, we should abort
+        # immediately
         project = os.path.join(os.path.dirname(__file__), 'package.tgz')
+
+        # when running from an uninstalled build, a warning is emitted and the
+        # installation is not attempted
+        if is_python_build():
+            self.assertFalse(install.install(project))
+            self.assertEqual(1, len(self.get_logs(logging.ERROR)))
+            return
+
         install_path = self.mkdtemp()
         old_get_path = install.get_path
         install.get_path = lambda path: install_path
diff --git a/Misc/ACKS b/Misc/ACKS
index 900fae7..de5410c 100644
--- a/Misc/ACKS
+++ b/Misc/ACKS
@@ -550,6 +550,7 @@
 Robert Lehmann
 Petri Lehtinen
 Luke Kenneth Casson Leighton
+Tshepang Lekhonkhobe
 Marc-Andre Lemburg
 John Lenton
 Christopher Tur Lesniewski-Laas
diff --git a/Misc/NEWS b/Misc/NEWS
index 772eef9..e94b77c 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -187,6 +187,10 @@
 Library
 -------
 
+- Issue #12246: Warn and fail when trying to install a third-party project from
+  an uninstalled Python (built in a source checkout).  Original patch by
+  Tshepang Lekhonkhobe.
+
 - Issue #11583: Speed up os.path.isdir on Windows by using GetFileAttributes
   instead of os.stat.
 
