Issue #14200 — now displayhook for IDLE works in non-subprocess mode as well as subprecess.
diff --git a/Lib/idlelib/PyShell.py b/Lib/idlelib/PyShell.py
index d7edce5..c524d61 100644
--- a/Lib/idlelib/PyShell.py
+++ b/Lib/idlelib/PyShell.py
@@ -999,6 +999,8 @@
                 return False
         else:
             nosub = "==== No Subprocess ===="
+            sys.displayhook = rpc.displayhook
+
         self.write("Python %s on %s\n%s\n%s" %
                    (sys.version, sys.platform, self.COPYRIGHT, nosub))
         self.showprompt()