convert shebang lines: python -> python3
diff --git a/Demo/cgi/cgi1.py b/Demo/cgi/cgi1.py
index 842fef2..b4154df 100755
--- a/Demo/cgi/cgi1.py
+++ b/Demo/cgi/cgi1.py
@@ -1,4 +1,4 @@
-#!/usr/local/bin/python
+#!/usr/bin/env python3
 
 """CGI test 1 - check server setup."""
 
diff --git a/Demo/cgi/cgi2.py b/Demo/cgi/cgi2.py
index 1d5822c..8aa57b3 100755
--- a/Demo/cgi/cgi2.py
+++ b/Demo/cgi/cgi2.py
@@ -1,4 +1,4 @@
-#!/usr/local/bin/python
+#!/usr/bin/env python3
 
 """CGI test 2 - basic use of cgi module."""
 
diff --git a/Demo/cgi/cgi3.py b/Demo/cgi/cgi3.py
index a3421b5..de8ef65 100755
--- a/Demo/cgi/cgi3.py
+++ b/Demo/cgi/cgi3.py
@@ -1,4 +1,4 @@
-#!/usr/local/bin/python
+#!/usr/bin/env python3
 
 """CGI test 3 (persistent data)."""
 
diff --git a/Demo/comparisons/regextest.py b/Demo/comparisons/regextest.py
index d2c534d..547ee0d 100755
--- a/Demo/comparisons/regextest.py
+++ b/Demo/comparisons/regextest.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 
 # 1)  Regular Expressions Test
 #
diff --git a/Demo/comparisons/sortingtest.py b/Demo/comparisons/sortingtest.py
index f9ed854..e826e81 100755
--- a/Demo/comparisons/sortingtest.py
+++ b/Demo/comparisons/sortingtest.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 
 # 2)  Sorting Test
 #
diff --git a/Demo/comparisons/systemtest.py b/Demo/comparisons/systemtest.py
index e3d840e..8276333 100755
--- a/Demo/comparisons/systemtest.py
+++ b/Demo/comparisons/systemtest.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 
 # 3)  System Test
 #
diff --git a/Demo/curses/life.py b/Demo/curses/life.py
index ddff8fa..06f9692 100755
--- a/Demo/curses/life.py
+++ b/Demo/curses/life.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
 # life.py -- A curses-based version of Conway's Game of Life.
 # Contributed by AMK
 #
diff --git a/Demo/curses/ncurses.py b/Demo/curses/ncurses.py
index 0bdc1a9..dedde29 100644
--- a/Demo/curses/ncurses.py
+++ b/Demo/curses/ncurses.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
 #
 # $Id$
 #
diff --git a/Demo/curses/rain.py b/Demo/curses/rain.py
index 9d46e6e..7cabb4f 100644
--- a/Demo/curses/rain.py
+++ b/Demo/curses/rain.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
 #
 # $Id$
 #
diff --git a/Demo/curses/repeat.py b/Demo/curses/repeat.py
index 93372c5..570f221 100755
--- a/Demo/curses/repeat.py
+++ b/Demo/curses/repeat.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 
 """repeat [-i SECONDS] <shell-command>
 
diff --git a/Demo/curses/tclock.py b/Demo/curses/tclock.py
index 8058d9a..cde0a93 100644
--- a/Demo/curses/tclock.py
+++ b/Demo/curses/tclock.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
 #
 # $Id$
 #
diff --git a/Demo/distutils/test2to3/maintest.py b/Demo/distutils/test2to3/maintest.py
index 72a26dd..036dd4f 100644
--- a/Demo/distutils/test2to3/maintest.py
+++ b/Demo/distutils/test2to3/maintest.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
 
 # The above line should get replaced with the path to the Python
 # interpreter; the block below should get 2to3-converted.
diff --git a/Demo/parser/test_parser.py b/Demo/parser/test_parser.py
index e4d5571..7d6db6b 100755
--- a/Demo/parser/test_parser.py
+++ b/Demo/parser/test_parser.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 #  (Force the script to use the latest build.)
 #
 #  test_parser.py
diff --git a/Demo/pdist/RCSProxy.py b/Demo/pdist/RCSProxy.py
index 7c3b24f..b0a01ad 100755
--- a/Demo/pdist/RCSProxy.py
+++ b/Demo/pdist/RCSProxy.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 
 """RCS Proxy.
 
diff --git a/Demo/pdist/makechangelog.py b/Demo/pdist/makechangelog.py
index db66e8f..dd90657 100755
--- a/Demo/pdist/makechangelog.py
+++ b/Demo/pdist/makechangelog.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 
 """Turn a pile of RCS log output into ChangeLog file entries.
 
diff --git a/Demo/pdist/rcvs.py b/Demo/pdist/rcvs.py
index 4e2532a..ff178b7 100755
--- a/Demo/pdist/rcvs.py
+++ b/Demo/pdist/rcvs.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 
 """Remote CVS -- command line interface"""
 
diff --git a/Demo/pdist/rrcs.py b/Demo/pdist/rrcs.py
index 647ecc5..9e246b8 100755
--- a/Demo/pdist/rrcs.py
+++ b/Demo/pdist/rrcs.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 
 "Remote RCS -- command line interface"
 
diff --git a/Demo/pysvr/pysvr.py b/Demo/pysvr/pysvr.py
index 3e94dbe..578e99c 100755
--- a/Demo/pysvr/pysvr.py
+++ b/Demo/pysvr/pysvr.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 
 """A multi-threaded telnet-like server that gives a Python prompt.
 
diff --git a/Demo/scripts/beer.py b/Demo/scripts/beer.py
index 8135509..56eec7b 100755
--- a/Demo/scripts/beer.py
+++ b/Demo/scripts/beer.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 
 # By GvR, demystified after a version by Fredrik Lundh.
 
diff --git a/Demo/scripts/eqfix.py b/Demo/scripts/eqfix.py
index 47c00d3..8d0c8df 100755
--- a/Demo/scripts/eqfix.py
+++ b/Demo/scripts/eqfix.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 
 # Fix Python source files to use the new equality test operator, i.e.,
 #       if x = y: ...
diff --git a/Demo/scripts/fact.py b/Demo/scripts/fact.py
index 71fcda2..2a3bef2 100755
--- a/Demo/scripts/fact.py
+++ b/Demo/scripts/fact.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 
 # Factorize numbers.
 # The algorithm is not efficient, but easy to understand.
diff --git a/Demo/scripts/find-uname.py b/Demo/scripts/find-uname.py
index 1902423..b6ec1b6 100755
--- a/Demo/scripts/find-uname.py
+++ b/Demo/scripts/find-uname.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
 
 """
 For each argument on the command line, look for it in the set of all Unicode
diff --git a/Demo/scripts/from.py b/Demo/scripts/from.py
index 323e684..c8a9346 100755
--- a/Demo/scripts/from.py
+++ b/Demo/scripts/from.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 
 # Print From and Subject of messages in $MAIL.
 # Extension to multiple mailboxes and other bells & whistles are left
diff --git a/Demo/scripts/lpwatch.py b/Demo/scripts/lpwatch.py
index 90b3ecf..01d9fea 100755
--- a/Demo/scripts/lpwatch.py
+++ b/Demo/scripts/lpwatch.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 
 # Watch line printer queue(s).
 # Intended for BSD 4.3 lpq.
diff --git a/Demo/scripts/makedir.py b/Demo/scripts/makedir.py
index 7095868..a14e848 100755
--- a/Demo/scripts/makedir.py
+++ b/Demo/scripts/makedir.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 
 # Like mkdir, but also make intermediate directories if necessary.
 # It is not an error if the given directory already exists (as long
diff --git a/Demo/scripts/markov.py b/Demo/scripts/markov.py
index 990c972..7c08bdb 100755
--- a/Demo/scripts/markov.py
+++ b/Demo/scripts/markov.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 
 class Markov:
     def __init__(self, histsize, choice):
diff --git a/Demo/scripts/mboxconvert.py b/Demo/scripts/mboxconvert.py
index 2e44f06..cb3ed89 100755
--- a/Demo/scripts/mboxconvert.py
+++ b/Demo/scripts/mboxconvert.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 
 # Convert  MH directories (1 message per file) or MMDF mailboxes (4x^A
 # delimited) to unix mailbox (From ... delimited) on stdout.
diff --git a/Demo/scripts/morse.py b/Demo/scripts/morse.py
index 5aacaa1..c2f408f 100755
--- a/Demo/scripts/morse.py
+++ b/Demo/scripts/morse.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 
 # DAH should be three DOTs.
 # Space between DOTs and DAHs should be one DOT.
diff --git a/Demo/scripts/newslist.py b/Demo/scripts/newslist.py
index 9cea1b4..b345f2ef 100755
--- a/Demo/scripts/newslist.py
+++ b/Demo/scripts/newslist.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 #######################################################################
 # Newslist  $Revision$
 #
diff --git a/Demo/scripts/pi.py b/Demo/scripts/pi.py
index 0740cd0..248f81f 100755
--- a/Demo/scripts/pi.py
+++ b/Demo/scripts/pi.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 
 # Print digits of pi forever.
 #
diff --git a/Demo/scripts/pp.py b/Demo/scripts/pp.py
index 2c948f7..87b9d8f 100755
--- a/Demo/scripts/pp.py
+++ b/Demo/scripts/pp.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 
 # Emulate some Perl command line options.
 # Usage: pp [-a] [-c] [-d] [-e scriptline] [-F fieldsep] [-n] [-p] [file] ...
diff --git a/Demo/scripts/primes.py b/Demo/scripts/primes.py
index d296f0e..c994623 100755
--- a/Demo/scripts/primes.py
+++ b/Demo/scripts/primes.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 
 # Print prime numbers in a given range
 
diff --git a/Demo/scripts/queens.py b/Demo/scripts/queens.py
index 726433c..ffd4bea 100755
--- a/Demo/scripts/queens.py
+++ b/Demo/scripts/queens.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 
 """N queens problem.
 
diff --git a/Demo/scripts/script.py b/Demo/scripts/script.py
index b490b17..a815a35 100755
--- a/Demo/scripts/script.py
+++ b/Demo/scripts/script.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 
 # script.py -- Make typescript of terminal session.
 # Usage:
diff --git a/Demo/scripts/unbirthday.py b/Demo/scripts/unbirthday.py
index af58f8f..b3c7d23 100755
--- a/Demo/scripts/unbirthday.py
+++ b/Demo/scripts/unbirthday.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 
 # Calculate your unbirthday count (see Alice in Wonderland).
 # This is defined as the number of days from your birth until today
diff --git a/Demo/scripts/update.py b/Demo/scripts/update.py
index d49e4b3..49c09d8 100755
--- a/Demo/scripts/update.py
+++ b/Demo/scripts/update.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 
 # Update a bunch of files according to a script.
 # The input file contains lines of the form <filename>:<lineno>:<text>,
diff --git a/Demo/sockets/echosvr.py b/Demo/sockets/echosvr.py
index 7de6391..6f7030e 100755
--- a/Demo/sockets/echosvr.py
+++ b/Demo/sockets/echosvr.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 
 # Python implementation of an 'echo' tcp server: echo all data it receives.
 #
diff --git a/Demo/sockets/finger.py b/Demo/sockets/finger.py
index e8b9ed2..4d49391 100755
--- a/Demo/sockets/finger.py
+++ b/Demo/sockets/finger.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 
 # Python interface to the Internet finger daemon.
 #
diff --git a/Demo/sockets/gopher.py b/Demo/sockets/gopher.py
index c287319..bd29ec0 100755
--- a/Demo/sockets/gopher.py
+++ b/Demo/sockets/gopher.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 
 # A simple gopher client.
 #
diff --git a/Demo/sockets/mcast.py b/Demo/sockets/mcast.py
index b7f8556..6ce7c6d 100755
--- a/Demo/sockets/mcast.py
+++ b/Demo/sockets/mcast.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
 #
 # Send/receive UDP multicast packets.
 # Requires that your OS kernel supports IP multicast.
diff --git a/Demo/sockets/rpython.py b/Demo/sockets/rpython.py
index b654dc2..7dcf979 100755
--- a/Demo/sockets/rpython.py
+++ b/Demo/sockets/rpython.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 
 # Remote python client.
 # Execute Python commands remotely and send output back.
diff --git a/Demo/sockets/rpythond.py b/Demo/sockets/rpythond.py
index d745cc7..e244d6c 100755
--- a/Demo/sockets/rpythond.py
+++ b/Demo/sockets/rpythond.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 
 # Remote python server.
 # Execute Python commands remotely and send output back.
diff --git a/Demo/sockets/telnet.py b/Demo/sockets/telnet.py
index 038036ff..fb36faf 100755
--- a/Demo/sockets/telnet.py
+++ b/Demo/sockets/telnet.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 
 # Minimal interface to the Internet telnet protocol.
 #
diff --git a/Demo/sockets/throughput.py b/Demo/sockets/throughput.py
index 64244aa..5954316 100755
--- a/Demo/sockets/throughput.py
+++ b/Demo/sockets/throughput.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 
 # Test network throughput.
 #
diff --git a/Demo/sockets/udpecho.py b/Demo/sockets/udpecho.py
index 9966fd8..6983a1f 100755
--- a/Demo/sockets/udpecho.py
+++ b/Demo/sockets/udpecho.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 
 # Client and server for udp (datagram) echo.
 #
diff --git a/Demo/tkinter/guido/MimeViewer.py b/Demo/tkinter/guido/MimeViewer.py
index 11701cd..b957c85 100755
--- a/Demo/tkinter/guido/MimeViewer.py
+++ b/Demo/tkinter/guido/MimeViewer.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 
 # View a single MIME multipart message.
 # Display each part as a box.
diff --git a/Demo/tkinter/guido/canvasevents.py b/Demo/tkinter/guido/canvasevents.py
index aeb0eb1..e5d27cc 100644
--- a/Demo/tkinter/guido/canvasevents.py
+++ b/Demo/tkinter/guido/canvasevents.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 
 from tkinter import *
 from Canvas import Oval, Group, CanvasText
diff --git a/Demo/tkinter/guido/dialog.py b/Demo/tkinter/guido/dialog.py
index 1832ba4..f16029c 100755
--- a/Demo/tkinter/guido/dialog.py
+++ b/Demo/tkinter/guido/dialog.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 
 # A Python function that generates dialog boxes with a text message,
 # optional bitmap, and any number of buttons.
diff --git a/Demo/tkinter/guido/electrons.py b/Demo/tkinter/guido/electrons.py
index e3bf468..6079c04 100755
--- a/Demo/tkinter/guido/electrons.py
+++ b/Demo/tkinter/guido/electrons.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 
 # Simulate "electrons" migrating across the screen.
 # An optional bitmap file in can be in the background.
diff --git a/Demo/tkinter/guido/kill.py b/Demo/tkinter/guido/kill.py
index 36caba6..dd01a2d 100755
--- a/Demo/tkinter/guido/kill.py
+++ b/Demo/tkinter/guido/kill.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 # Tkinter interface to Linux `kill' command.
 
 from tkinter import *
diff --git a/Demo/tkinter/guido/mbox.py b/Demo/tkinter/guido/mbox.py
index 45c384e..299999c 100755
--- a/Demo/tkinter/guido/mbox.py
+++ b/Demo/tkinter/guido/mbox.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 
 # Scan MH folder, display results in window
 
diff --git a/Demo/tkinter/guido/newmenubardemo.py b/Demo/tkinter/guido/newmenubardemo.py
index 51c4e64..09ac566 100644
--- a/Demo/tkinter/guido/newmenubardemo.py
+++ b/Demo/tkinter/guido/newmenubardemo.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 
 """Play with the new Tk 8.0 toplevel menu option."""
 
diff --git a/Demo/tkinter/guido/rmt.py b/Demo/tkinter/guido/rmt.py
index 7b3f700..a3f430e 100755
--- a/Demo/tkinter/guido/rmt.py
+++ b/Demo/tkinter/guido/rmt.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 
 # A Python program implementing rmt, an application for remotely
 # controlling other Tk applications.
diff --git a/Demo/tkinter/guido/solitaire.py b/Demo/tkinter/guido/solitaire.py
index b2a2a66..375bd03 100755
--- a/Demo/tkinter/guido/solitaire.py
+++ b/Demo/tkinter/guido/solitaire.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 
 """Solitaire game, much like the one that comes with MS Windows.
 
diff --git a/Demo/tkinter/guido/sortvisu.py b/Demo/tkinter/guido/sortvisu.py
index 0c71fc9..1e4165d 100644
--- a/Demo/tkinter/guido/sortvisu.py
+++ b/Demo/tkinter/guido/sortvisu.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 
 """Sorting algorithms visualizer using Tkinter.
 
diff --git a/Demo/tkinter/guido/svkill.py b/Demo/tkinter/guido/svkill.py
index 0dd9f95..4ed88ad 100755
--- a/Demo/tkinter/guido/svkill.py
+++ b/Demo/tkinter/guido/svkill.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 
 # Tkinter interface to SYSV `ps' and `kill' commands.
 
diff --git a/Demo/tkinter/guido/tkman.py b/Demo/tkinter/guido/tkman.py
index 52b6d03..4fc0488 100755
--- a/Demo/tkinter/guido/tkman.py
+++ b/Demo/tkinter/guido/tkman.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 
 # Tk man page browser -- currently only shows the Tcl/Tk man pages
 
diff --git a/Demo/turtle/tdemo_I_dontlike_tiltdemo.py b/Demo/turtle/tdemo_I_dontlike_tiltdemo.py
index 1d8652c..1e5c440 100644
--- a/Demo/turtle/tdemo_I_dontlike_tiltdemo.py
+++ b/Demo/turtle/tdemo_I_dontlike_tiltdemo.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/env python3
 """       turtle-example-suite:
 
      tdemo-I_dont_like_tiltdemo.py
diff --git a/Demo/turtle/tdemo_bytedesign.py b/Demo/turtle/tdemo_bytedesign.py
index 2e2ac62..96118b3 100644
--- a/Demo/turtle/tdemo_bytedesign.py
+++ b/Demo/turtle/tdemo_bytedesign.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/env python3
 """      turtle-example-suite:
 
         tdemo_bytedesign.py
diff --git a/Demo/turtle/tdemo_clock.py b/Demo/turtle/tdemo_clock.py
index e186c38..a0d157b 100644
--- a/Demo/turtle/tdemo_clock.py
+++ b/Demo/turtle/tdemo_clock.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/env python3
 # -*- coding: cp1252 -*-
 """       turtle-example-suite:
 
diff --git a/Demo/turtle/tdemo_forest.py b/Demo/turtle/tdemo_forest.py
index 01fa186..a837d84 100644
--- a/Demo/turtle/tdemo_forest.py
+++ b/Demo/turtle/tdemo_forest.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/env python3
 """     turtlegraphics-example-suite:
 
              tdemo_forest.py
diff --git a/Demo/turtle/tdemo_fractalcurves.py b/Demo/turtle/tdemo_fractalcurves.py
index 247f16c..c49f8b8 100644
--- a/Demo/turtle/tdemo_fractalcurves.py
+++ b/Demo/turtle/tdemo_fractalcurves.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/env python3
 """      turtle-example-suite:
 
         tdemo_fractalCurves.py
diff --git a/Demo/turtle/tdemo_lindenmayer_indian.py b/Demo/turtle/tdemo_lindenmayer_indian.py
index bda5067..3925f25 100644
--- a/Demo/turtle/tdemo_lindenmayer_indian.py
+++ b/Demo/turtle/tdemo_lindenmayer_indian.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/env python3
 """       turtle-example-suite:
 
         xtx_lindenmayer_indian.py
diff --git a/Demo/turtle/tdemo_minimal_hanoi.py b/Demo/turtle/tdemo_minimal_hanoi.py
index a8bdca7..cfb78dc 100644
--- a/Demo/turtle/tdemo_minimal_hanoi.py
+++ b/Demo/turtle/tdemo_minimal_hanoi.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/env python3
 """       turtle-example-suite:
 
          tdemo_minimal_hanoi.py
diff --git a/Demo/turtle/tdemo_paint.py b/Demo/turtle/tdemo_paint.py
index 337a57c..68058ab 100644
--- a/Demo/turtle/tdemo_paint.py
+++ b/Demo/turtle/tdemo_paint.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/env python3
 """       turtle-example-suite:
 
             tdemo_paint.py
diff --git a/Demo/turtle/tdemo_peace.py b/Demo/turtle/tdemo_peace.py
index ea57069..63cf7cc 100644
--- a/Demo/turtle/tdemo_peace.py
+++ b/Demo/turtle/tdemo_peace.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/env python3
 """       turtle-example-suite:
 
               tdemo_peace.py
diff --git a/Demo/turtle/tdemo_penrose.py b/Demo/turtle/tdemo_penrose.py
index f816f66..f73c864 100644
--- a/Demo/turtle/tdemo_penrose.py
+++ b/Demo/turtle/tdemo_penrose.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/env python3
 """       xturtle-example-suite:
 
           xtx_kites_and_darts.py
diff --git a/Demo/turtle/tdemo_planet_and_moon.py b/Demo/turtle/tdemo_planet_and_moon.py
index 983449c..14c4bbc 100644
--- a/Demo/turtle/tdemo_planet_and_moon.py
+++ b/Demo/turtle/tdemo_planet_and_moon.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/env python3
 """       turtle-example-suite:
 
         tdemo_planets_and_moon.py
diff --git a/Demo/turtle/tdemo_tree.py b/Demo/turtle/tdemo_tree.py
index fda653c..9c0b1f7 100644
--- a/Demo/turtle/tdemo_tree.py
+++ b/Demo/turtle/tdemo_tree.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/env python3
 """      turtle-example-suite:
 
              tdemo_tree.py
diff --git a/Demo/turtle/tdemo_yinyang.py b/Demo/turtle/tdemo_yinyang.py
index 6508b44..11d1f47 100644
--- a/Demo/turtle/tdemo_yinyang.py
+++ b/Demo/turtle/tdemo_yinyang.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/env python3
 """       turtle-example-suite:
 
             tdemo_yinyang.py
diff --git a/Demo/turtle/turtleDemo.py b/Demo/turtle/turtleDemo.py
index 36bf15c..b5b99c0 100644
--- a/Demo/turtle/turtleDemo.py
+++ b/Demo/turtle/turtleDemo.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/env python3
 import sys
 import os
 
diff --git a/Demo/turtle/turtledemo_two_canvases.py b/Demo/turtle/turtledemo_two_canvases.py
index 57ecb1d..d2d7188 100644
--- a/Demo/turtle/turtledemo_two_canvases.py
+++ b/Demo/turtle/turtledemo_two_canvases.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/env python3
 ## DEMONSTRATES USE OF 2 CANVASES, SO CANNOT BE RUN IN DEMOVIEWER!
 """turtle example: Using TurtleScreen and RawTurtle
 for drawing on two distinct canvases.
diff --git a/Demo/zlib/minigzip.py b/Demo/zlib/minigzip.py
index 28d8b26..b2af7f9 100755
--- a/Demo/zlib/minigzip.py
+++ b/Demo/zlib/minigzip.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
 # Demo program for zlib; it compresses or decompresses files, but *doesn't*
 # delete the original.  This doesn't support all of gzip's options.
 #
diff --git a/Demo/zlib/zlibdemo.py b/Demo/zlib/zlibdemo.py
index 53463dd..52f71a0 100755
--- a/Demo/zlib/zlibdemo.py
+++ b/Demo/zlib/zlibdemo.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
 
 # Takes an optional filename, defaulting to this file itself.
 # Reads the file and compresses the content using level 1 and level 9
diff --git a/Doc/includes/email-alternative.py b/Doc/includes/email-alternative.py
index 82e3ffa..33c430a 100644
--- a/Doc/includes/email-alternative.py
+++ b/Doc/includes/email-alternative.py
@@ -1,4 +1,4 @@
-#! /usr/bin/python
+#!/usr/bin/env python3
 
 import smtplib
 
diff --git a/Doc/includes/email-dir.py b/Doc/includes/email-dir.py
index e67de61..b1b45b8 100644
--- a/Doc/includes/email-dir.py
+++ b/Doc/includes/email-dir.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
 
 """Send the contents of a directory as a MIME message."""
 
diff --git a/Doc/includes/email-unpack.py b/Doc/includes/email-unpack.py
index a8f712d..3653543 100644
--- a/Doc/includes/email-unpack.py
+++ b/Doc/includes/email-unpack.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
 
 """Unpack a MIME message into a directory of files."""
 
diff --git a/Doc/tools/rstlint.py b/Doc/tools/rstlint.py
index eaaf257..8e6b374 100755
--- a/Doc/tools/rstlint.py
+++ b/Doc/tools/rstlint.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
 # -*- coding: utf-8 -*-
 
 # Check for stylistic and formal issues in .rst and .py
diff --git a/Lib/base64.py b/Lib/base64.py
index e708136..a8d9f21 100755
--- a/Lib/base64.py
+++ b/Lib/base64.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 
 """RFC 3548: Base16, Base32, Base64 Data Encodings"""
 
diff --git a/Lib/cProfile.py b/Lib/cProfile.py
index a7686ed..3e2b2ed 100755
--- a/Lib/cProfile.py
+++ b/Lib/cProfile.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 
 """Python interface for the 'lsprof' profiler.
    Compatible with the 'profile' module.
diff --git a/Lib/difflib.py b/Lib/difflib.py
index 264860e..292bba9 100644
--- a/Lib/difflib.py
+++ b/Lib/difflib.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 
 """
 Module difflib -- helpers for computing deltas between objects.
diff --git a/Lib/http/cookies.py b/Lib/http/cookies.py
index 1051cdd..da30e25 100644
--- a/Lib/http/cookies.py
+++ b/Lib/http/cookies.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
 #
 
 ####
diff --git a/Lib/idlelib/PyShell.py b/Lib/idlelib/PyShell.py
index edc9334..ef82d81 100644
--- a/Lib/idlelib/PyShell.py
+++ b/Lib/idlelib/PyShell.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 
 import os
 import os.path
diff --git a/Lib/keyword.py b/Lib/keyword.py
index a7abe2b..a5974b5 100755
--- a/Lib/keyword.py
+++ b/Lib/keyword.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 
 """Keywords (from "graminit.c")
 
diff --git a/Lib/lib2to3/pgen2/token.py b/Lib/lib2to3/pgen2/token.py
index 1c81065..6a6d0b6 100755
--- a/Lib/lib2to3/pgen2/token.py
+++ b/Lib/lib2to3/pgen2/token.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 
 """Token constants (from "token.h")."""
 
diff --git a/Lib/lib2to3/tests/pytree_idempotency.py b/Lib/lib2to3/tests/pytree_idempotency.py
index 414eb4d..a02bbfe 100755
--- a/Lib/lib2to3/tests/pytree_idempotency.py
+++ b/Lib/lib2to3/tests/pytree_idempotency.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
 # Copyright 2006 Google, Inc. All Rights Reserved.
 # Licensed to PSF under a Contributor Agreement.
 
diff --git a/Lib/mailbox.py b/Lib/mailbox.py
index 3f299a8..c2c9b5c 100755
--- a/Lib/mailbox.py
+++ b/Lib/mailbox.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 
 """Read/write support for Maildir, mbox, MH, Babyl, and MMDF mailboxes."""
 
diff --git a/Lib/pdb.py b/Lib/pdb.py
index 22dcff7..b15a3d1 100755
--- a/Lib/pdb.py
+++ b/Lib/pdb.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 
 """A Python debugger."""
 
diff --git a/Lib/platform.py b/Lib/platform.py
index b6e7596..7d39250 100755
--- a/Lib/platform.py
+++ b/Lib/platform.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
 
 """ This module tries to retrieve as much platform-identifying data as
     possible. It makes this information available via function APIs.
diff --git a/Lib/profile.py b/Lib/profile.py
index 4eb86a8..a09fffe 100755
--- a/Lib/profile.py
+++ b/Lib/profile.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 #
 # Class for profiling python code. rev 1.0  6/2/94
 #
diff --git a/Lib/pydoc.py b/Lib/pydoc.py
index 79fb54a..4a8017e 100755
--- a/Lib/pydoc.py
+++ b/Lib/pydoc.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
 # -*- coding: latin-1 -*-
 """Generate Python documentation in HTML or text for interactive use.
 
diff --git a/Lib/quopri.py b/Lib/quopri.py
index ff27923..3d0f0ac 100755
--- a/Lib/quopri.py
+++ b/Lib/quopri.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 
 """Conversions to/from quoted-printable transport encoding as per RFC 1521."""
 
diff --git a/Lib/smtpd.py b/Lib/smtpd.py
index 3dc9793..17b7427 100755
--- a/Lib/smtpd.py
+++ b/Lib/smtpd.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 """An RFC 2821 smtp proxy.
 
 Usage: %(program)s [options] [localhost:localport [remotehost:remoteport]]
diff --git a/Lib/smtplib.py b/Lib/smtplib.py
index a01a184..69ec9ec 100755
--- a/Lib/smtplib.py
+++ b/Lib/smtplib.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 
 '''SMTP/ESMTP client class.
 
diff --git a/Lib/symbol.py b/Lib/symbol.py
index ea8f2f5..e3fff34 100755
--- a/Lib/symbol.py
+++ b/Lib/symbol.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 
 """Non-terminal symbols of Python grammar (from "graminit.h")."""
 
diff --git a/Lib/tabnanny.py b/Lib/tabnanny.py
index 0ae5e9f..2c6fb0c 100755
--- a/Lib/tabnanny.py
+++ b/Lib/tabnanny.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 
 """The Tab Nanny despises ambiguous indentation.  She knows no mercy.
 
diff --git a/Lib/tarfile.py b/Lib/tarfile.py
index e28b1c7..8684493 100644
--- a/Lib/tarfile.py
+++ b/Lib/tarfile.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
 #-------------------------------------------------------------------
 # tarfile.py
 #-------------------------------------------------------------------
diff --git a/Lib/test/crashers/recursive_call.py b/Lib/test/crashers/recursive_call.py
index 31c8963..2d160a7 100644
--- a/Lib/test/crashers/recursive_call.py
+++ b/Lib/test/crashers/recursive_call.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
 
 # No bug report AFAIK, mail on python-dev on 2006-01-10
 
diff --git a/Lib/test/curses_tests.py b/Lib/test/curses_tests.py
index 7dedbbc..40e832d 100644
--- a/Lib/test/curses_tests.py
+++ b/Lib/test/curses_tests.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
 #
 # $Id: ncurses.py 36559 2004-07-18 05:56:09Z tim_one $
 #
diff --git a/Lib/test/pystone.py b/Lib/test/pystone.py
index 614551f..aad4d8c 100755
--- a/Lib/test/pystone.py
+++ b/Lib/test/pystone.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 
 """
 "PYSTONE" Benchmark Program
diff --git a/Lib/test/re_tests.py b/Lib/test/re_tests.py
index d314e20..5d16e3d 100755
--- a/Lib/test/re_tests.py
+++ b/Lib/test/re_tests.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
 # -*- mode: python -*-
 
 # Re test suite and benchmark suite v1.5
diff --git a/Lib/test/regrtest.py b/Lib/test/regrtest.py
index 9f631f4..d4f40aa 100755
--- a/Lib/test/regrtest.py
+++ b/Lib/test/regrtest.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 
 """Regression test.
 
diff --git a/Lib/test/test___future__.py b/Lib/test/test___future__.py
index f41b879..9ae4ce4 100644
--- a/Lib/test/test___future__.py
+++ b/Lib/test/test___future__.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 import unittest
 from test import support
 import __future__
diff --git a/Lib/test/test_array.py b/Lib/test/test_array.py
index 8a3796c..5de562f 100755
--- a/Lib/test/test_array.py
+++ b/Lib/test/test_array.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 """Test the arraymodule.
    Roger E. Masse
 """
diff --git a/Lib/test/test_binhex.py b/Lib/test/test_binhex.py
index 06fd98a..d6ef84a 100755
--- a/Lib/test/test_binhex.py
+++ b/Lib/test/test_binhex.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 """Test script for the binhex C module
 
    Uses the mechanism of the python binhex module
diff --git a/Lib/test/test_bz2.py b/Lib/test/test_bz2.py
index 9a9afa6..dbbdad3 100644
--- a/Lib/test/test_bz2.py
+++ b/Lib/test/test_bz2.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/env python3
 from test import support
 from test.support import TESTFN
 
diff --git a/Lib/test/test_cmd.py b/Lib/test/test_cmd.py
index f102fe0..11602f1 100644
--- a/Lib/test/test_cmd.py
+++ b/Lib/test/test_cmd.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
 """
 Test script for the 'cmd' module
 Original by Michael Schneider
diff --git a/Lib/test/test_codecencodings_cn.py b/Lib/test/test_codecencodings_cn.py
index 77bac13..a2d9718 100644
--- a/Lib/test/test_codecencodings_cn.py
+++ b/Lib/test/test_codecencodings_cn.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
 #
 # test_codecencodings_cn.py
 #   Codec encoding tests for PRC encodings.
diff --git a/Lib/test/test_codecencodings_hk.py b/Lib/test/test_codecencodings_hk.py
index b1deb71..ccdc0b4 100644
--- a/Lib/test/test_codecencodings_hk.py
+++ b/Lib/test/test_codecencodings_hk.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
 #
 # test_codecencodings_hk.py
 #   Codec encoding tests for HongKong encodings.
diff --git a/Lib/test/test_codecencodings_jp.py b/Lib/test/test_codecencodings_jp.py
index e2cd7d7..f56a373 100644
--- a/Lib/test/test_codecencodings_jp.py
+++ b/Lib/test/test_codecencodings_jp.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
 #
 # test_codecencodings_jp.py
 #   Codec encoding tests for Japanese encodings.
diff --git a/Lib/test/test_codecencodings_kr.py b/Lib/test/test_codecencodings_kr.py
index 34fade9..de4da7f 100644
--- a/Lib/test/test_codecencodings_kr.py
+++ b/Lib/test/test_codecencodings_kr.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
 #
 # test_codecencodings_kr.py
 #   Codec encoding tests for ROK encodings.
diff --git a/Lib/test/test_codecencodings_tw.py b/Lib/test/test_codecencodings_tw.py
index 6b840d3..12d3c9f 100644
--- a/Lib/test/test_codecencodings_tw.py
+++ b/Lib/test/test_codecencodings_tw.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
 #
 # test_codecencodings_tw.py
 #   Codec encoding tests for ROC encodings.
diff --git a/Lib/test/test_codecmaps_cn.py b/Lib/test/test_codecmaps_cn.py
index 34a910d..063919d 100644
--- a/Lib/test/test_codecmaps_cn.py
+++ b/Lib/test/test_codecmaps_cn.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
 #
 # test_codecmaps_cn.py
 #   Codec mapping tests for PRC encodings
diff --git a/Lib/test/test_codecmaps_hk.py b/Lib/test/test_codecmaps_hk.py
index ddb1208..bbe1f2f 100644
--- a/Lib/test/test_codecmaps_hk.py
+++ b/Lib/test/test_codecmaps_hk.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
 #
 # test_codecmaps_hk.py
 #   Codec mapping tests for HongKong encodings
diff --git a/Lib/test/test_codecmaps_jp.py b/Lib/test/test_codecmaps_jp.py
index 75db00c..652bd81 100644
--- a/Lib/test/test_codecmaps_jp.py
+++ b/Lib/test/test_codecmaps_jp.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
 #
 # test_codecmaps_jp.py
 #   Codec mapping tests for Japanese encodings
diff --git a/Lib/test/test_codecmaps_kr.py b/Lib/test/test_codecmaps_kr.py
index 0da9d1c..d909c8b 100644
--- a/Lib/test/test_codecmaps_kr.py
+++ b/Lib/test/test_codecmaps_kr.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
 #
 # test_codecmaps_kr.py
 #   Codec mapping tests for ROK encodings
diff --git a/Lib/test/test_codecmaps_tw.py b/Lib/test/test_codecmaps_tw.py
index e6df3a7..6db5091 100644
--- a/Lib/test/test_codecmaps_tw.py
+++ b/Lib/test/test_codecmaps_tw.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
 #
 # test_codecmaps_tw.py
 #   Codec mapping tests for ROC encodings
diff --git a/Lib/test/test_dbm.py b/Lib/test/test_dbm.py
index 78357a0..c1be7d9 100644
--- a/Lib/test/test_dbm.py
+++ b/Lib/test/test_dbm.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 """Test script for the dbm.open function based on testdumbdbm.py"""
 
 import os
diff --git a/Lib/test/test_dbm_dumb.py b/Lib/test/test_dbm_dumb.py
index 7a1a16e..a05db91 100644
--- a/Lib/test/test_dbm_dumb.py
+++ b/Lib/test/test_dbm_dumb.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 """Test script for the dumbdbm module
    Original by Roger E. Masse
 """
diff --git a/Lib/test/test_eof.py b/Lib/test/test_eof.py
index 4e37560..fb4ac9a 100644
--- a/Lib/test/test_eof.py
+++ b/Lib/test/test_eof.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 """test script for a few new invalid token catches"""
 
 import unittest
diff --git a/Lib/test/test_errno.py b/Lib/test/test_errno.py
index 621335c..e7d5ce5 100755
--- a/Lib/test/test_errno.py
+++ b/Lib/test/test_errno.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 """Test the errno module
    Roger E. Masse
 """
diff --git a/Lib/test/test_gzip.py b/Lib/test/test_gzip.py
index 429ada0..7eade6f 100644
--- a/Lib/test/test_gzip.py
+++ b/Lib/test/test_gzip.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 """Test script for the gzip module.
 """
 
diff --git a/Lib/test/test_keywordonlyarg.py b/Lib/test/test_keywordonlyarg.py
index b771a6c..6a88b3d 100644
--- a/Lib/test/test_keywordonlyarg.py
+++ b/Lib/test/test_keywordonlyarg.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
 
 """Unit tests for the keyword only argument specified in PEP 3102."""
 
diff --git a/Lib/test/test_logging.py b/Lib/test/test_logging.py
index cb6985e..02ac00e 100644
--- a/Lib/test/test_logging.py
+++ b/Lib/test/test_logging.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
 #
 # Copyright 2001-2010 by Vinay Sajip. All Rights Reserved.
 #
diff --git a/Lib/test/test_marshal.py b/Lib/test/test_marshal.py
index 6688785..9de0165 100644
--- a/Lib/test/test_marshal.py
+++ b/Lib/test/test_marshal.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
 
 from test import support
 import marshal
diff --git a/Lib/test/test_multibytecodec.py b/Lib/test/test_multibytecodec.py
index e4e86ff..ce860d7 100644
--- a/Lib/test/test_multibytecodec.py
+++ b/Lib/test/test_multibytecodec.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
 #
 # test_multibytecodec.py
 #   Unit test for multibytecodec itself
diff --git a/Lib/test/test_multibytecodec_support.py b/Lib/test/test_multibytecodec_support.py
index 75b3363..70e4d75 100644
--- a/Lib/test/test_multibytecodec_support.py
+++ b/Lib/test/test_multibytecodec_support.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
 #
 # test_multibytecodec_support.py
 #   Common Unittest Routines for CJK codecs
diff --git a/Lib/test/test_multiprocessing.py b/Lib/test/test_multiprocessing.py
index 7fcbdc32..452e192 100644
--- a/Lib/test/test_multiprocessing.py
+++ b/Lib/test/test_multiprocessing.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
 
 #
 # Unit tests for the multiprocessing package
diff --git a/Lib/test/test_popen.py b/Lib/test/test_popen.py
index 24fb846..da0c04e 100644
--- a/Lib/test/test_popen.py
+++ b/Lib/test/test_popen.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 """Basic tests for os.popen()
 
   Particularly useful for platforms that fake popen.
diff --git a/Lib/test/test_random.py b/Lib/test/test_random.py
index b64a8f7..c59e4fa 100644
--- a/Lib/test/test_random.py
+++ b/Lib/test/test_random.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
 
 import unittest
 import random
diff --git a/Lib/test/test_smtpnet.py b/Lib/test/test_smtpnet.py
index 5b1b38c..6f7f9ef 100644
--- a/Lib/test/test_smtpnet.py
+++ b/Lib/test/test_smtpnet.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
 
 import unittest
 from test import support
diff --git a/Lib/test/test_socket.py b/Lib/test/test_socket.py
index 4dc34ce..6bff03e 100644
--- a/Lib/test/test_socket.py
+++ b/Lib/test/test_socket.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
 
 import unittest
 from test import support
diff --git a/Lib/test/test_tcl.py b/Lib/test/test_tcl.py
index eebdd25..0df1fea 100644
--- a/Lib/test/test_tcl.py
+++ b/Lib/test/test_tcl.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
 
 import unittest
 import os
diff --git a/Lib/test/test_urllib2_localnet.py b/Lib/test/test_urllib2_localnet.py
index 965e0f4..c0f20f5 100644
--- a/Lib/test/test_urllib2_localnet.py
+++ b/Lib/test/test_urllib2_localnet.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
 
 import email
 import threading
diff --git a/Lib/test/test_urllib2net.py b/Lib/test/test_urllib2net.py
index 70b4cfa..b933194 100644
--- a/Lib/test/test_urllib2net.py
+++ b/Lib/test/test_urllib2net.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
 
 import unittest
 from test import support
diff --git a/Lib/test/test_urllibnet.py b/Lib/test/test_urllibnet.py
index 221b698..f324be9 100644
--- a/Lib/test/test_urllibnet.py
+++ b/Lib/test/test_urllibnet.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
 
 import unittest
 from test import support
diff --git a/Lib/test/test_urlparse.py b/Lib/test/test_urlparse.py
index 1658411..ca4eaa5 100644
--- a/Lib/test/test_urlparse.py
+++ b/Lib/test/test_urlparse.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 
 from test import support
 import unittest
diff --git a/Lib/test/test_userstring.py b/Lib/test/test_userstring.py
index 0538138..7a8b932 100755
--- a/Lib/test/test_userstring.py
+++ b/Lib/test/test_userstring.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
 # UserString is a wrapper around the native builtin string type.
 # UserString instances should behave similar to builtin string objects.
 
diff --git a/Lib/test/test_with.py b/Lib/test/test_with.py
index 640f31c..74b5f19 100644
--- a/Lib/test/test_with.py
+++ b/Lib/test/test_with.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
 
 """Unit tests for the with statement specified in PEP 343."""
 
diff --git a/Lib/test/test_xmlrpc_net.py b/Lib/test/test_xmlrpc_net.py
index c531b62..493e363 100644
--- a/Lib/test/test_xmlrpc_net.py
+++ b/Lib/test/test_xmlrpc_net.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
 
 import collections
 import errno
diff --git a/Lib/timeit.py b/Lib/timeit.py
index 7b9b72c..63d94ca 100644
--- a/Lib/timeit.py
+++ b/Lib/timeit.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 
 """Tool for measuring execution time of small code snippets.
 
diff --git a/Lib/token.py b/Lib/token.py
index da4d29b..a48bf3c 100755
--- a/Lib/token.py
+++ b/Lib/token.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 
 """Token constants (from "token.h")."""
 
diff --git a/Lib/trace.py b/Lib/trace.py
index e6316b6..9d91fe8 100644
--- a/Lib/trace.py
+++ b/Lib/trace.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
 
 # portions copyright 2001, Autonomous Zones Industries, Inc., all rights...
 # err...  reserved and offered to the public under the terms of the
diff --git a/Lib/uu.py b/Lib/uu.py
index d70f0e6..c917cdd 100755
--- a/Lib/uu.py
+++ b/Lib/uu.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 
 # Copyright 1994 by Lance Ellinghouse
 # Cathedral City, California Republic, United States of America.
diff --git a/Lib/webbrowser.py b/Lib/webbrowser.py
index aee797d..72ba1ac 100644
--- a/Lib/webbrowser.py
+++ b/Lib/webbrowser.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 """Interfaces for launching and remotely controlling Web browsers."""
 # Maintained by Georg Brandl.
 
diff --git a/Python/makeopcodetargets.py b/Python/makeopcodetargets.py
index a85ac52..7180e9a 100755
--- a/Python/makeopcodetargets.py
+++ b/Python/makeopcodetargets.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 """Generate C code for the jump table of the threaded code interpreter
 (for compilers supporting computed gotos or "labels-as-values", such as gcc).
 """
diff --git a/Tools/faqwiz/faqw.py b/Tools/faqwiz/faqw.py
index d972f61..01536c0 100755
--- a/Tools/faqwiz/faqw.py
+++ b/Tools/faqwiz/faqw.py
@@ -1,4 +1,4 @@
-#! /usr/local/bin/python
+#!/usr/bin/env python3
 
 """FAQ wizard bootstrap."""
 
diff --git a/Tools/freeze/freeze.py b/Tools/freeze/freeze.py
index a7673c9..2d8127a 100755
--- a/Tools/freeze/freeze.py
+++ b/Tools/freeze/freeze.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 
 """Freeze a Python script into a binary.
 
diff --git a/Tools/i18n/makelocalealias.py b/Tools/i18n/makelocalealias.py
index 45876c1..2a0e4c9 100644
--- a/Tools/i18n/makelocalealias.py
+++ b/Tools/i18n/makelocalealias.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
 """
     Convert the X11 locale.alias file into a mapping dictionary suitable
     for locale.py.
diff --git a/Tools/i18n/msgfmt.py b/Tools/i18n/msgfmt.py
index 860e4ea..f481c88 100755
--- a/Tools/i18n/msgfmt.py
+++ b/Tools/i18n/msgfmt.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 # -*- coding: iso-8859-1 -*-
 # Written by Martin v. Löwis <loewis@informatik.hu-berlin.de>
 
diff --git a/Tools/i18n/pygettext.py b/Tools/i18n/pygettext.py
index d4ea597..67a960f 100755
--- a/Tools/i18n/pygettext.py
+++ b/Tools/i18n/pygettext.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 # -*- coding: iso-8859-1 -*-
 # Originally written by Barry Warsaw <barry@zope.com>
 #
diff --git a/Tools/modulator/Tkextra.py b/Tools/modulator/Tkextra.py
index b1051aa..e969dde 100755
--- a/Tools/modulator/Tkextra.py
+++ b/Tools/modulator/Tkextra.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 
 # A Python function that generates dialog boxes with a text message,
 # optional bitmap, and any number of buttons.
diff --git a/Tools/modulator/modulator.py b/Tools/modulator/modulator.py
index d719649..76a7224 100755
--- a/Tools/modulator/modulator.py
+++ b/Tools/modulator/modulator.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 #
 # Modulator - Generate skeleton modules.
 #
diff --git a/Tools/scripts/byteyears.py b/Tools/scripts/byteyears.py
index f486d26..490b37f 100755
--- a/Tools/scripts/byteyears.py
+++ b/Tools/scripts/byteyears.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 
 # Print the product of age and size of each file, in suitable units.
 #
diff --git a/Tools/scripts/checkappend.py b/Tools/scripts/checkappend.py
index 4c74ee5..caa85db 100755
--- a/Tools/scripts/checkappend.py
+++ b/Tools/scripts/checkappend.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 
 # Released to the public domain, by Tim Peters, 28 February 2000.
 
diff --git a/Tools/scripts/checkpyc.py b/Tools/scripts/checkpyc.py
index 2e8fd5a..2dc948a 100755
--- a/Tools/scripts/checkpyc.py
+++ b/Tools/scripts/checkpyc.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 # Check that all ".pyc" files exist and are up-to-date
 # Uses module 'os'
 
diff --git a/Tools/scripts/classfix.py b/Tools/scripts/classfix.py
index 0cd1e49..971d1bd 100755
--- a/Tools/scripts/classfix.py
+++ b/Tools/scripts/classfix.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 
 # This script is obsolete -- it is kept for historical purposes only.
 #
diff --git a/Tools/scripts/cleanfuture.py b/Tools/scripts/cleanfuture.py
index e6c8c8c..b48ab60 100644
--- a/Tools/scripts/cleanfuture.py
+++ b/Tools/scripts/cleanfuture.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 
 """cleanfuture [-d][-r][-v] path ...
 
diff --git a/Tools/scripts/combinerefs.py b/Tools/scripts/combinerefs.py
index 68704dd..e10e49a 100644
--- a/Tools/scripts/combinerefs.py
+++ b/Tools/scripts/combinerefs.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 
 """
 combinerefs path
diff --git a/Tools/scripts/copytime.py b/Tools/scripts/copytime.py
index ba4a267..e0220b5 100755
--- a/Tools/scripts/copytime.py
+++ b/Tools/scripts/copytime.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 
 # Copy one file's atime and mtime to another
 
diff --git a/Tools/scripts/crlf.py b/Tools/scripts/crlf.py
index 3dfa131..0622282 100755
--- a/Tools/scripts/crlf.py
+++ b/Tools/scripts/crlf.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 "Replace CRLF with LF in argument files.  Print names of changed files."
 
 import sys, os
diff --git a/Tools/scripts/cvsfiles.py b/Tools/scripts/cvsfiles.py
index 9e65dc8..0fc13bb 100755
--- a/Tools/scripts/cvsfiles.py
+++ b/Tools/scripts/cvsfiles.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 
 """Print a list of files that are mentioned in CVS directories.
 
diff --git a/Tools/scripts/db2pickle.py b/Tools/scripts/db2pickle.py
index 9dd8bd3..a5532a8 100644
--- a/Tools/scripts/db2pickle.py
+++ b/Tools/scripts/db2pickle.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
 
 """
 Synopsis: %(prog)s [-h|-g|-b|-r|-a] dbfile [ picklefile ]
diff --git a/Tools/scripts/dutree.py b/Tools/scripts/dutree.py
index dbf4f1a..6b4361a 100755
--- a/Tools/scripts/dutree.py
+++ b/Tools/scripts/dutree.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 # Format du output in a tree shape
 
 import os, sys, errno
diff --git a/Tools/scripts/eptags.py b/Tools/scripts/eptags.py
index 8d35dfb..671ff11 100755
--- a/Tools/scripts/eptags.py
+++ b/Tools/scripts/eptags.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 """Create a TAGS file for Python programs, usable with GNU Emacs.
 
 usage: eptags pyfiles...
diff --git a/Tools/scripts/find_recursionlimit.py b/Tools/scripts/find_recursionlimit.py
index 2e202be..b299bf5 100644
--- a/Tools/scripts/find_recursionlimit.py
+++ b/Tools/scripts/find_recursionlimit.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 """Find the maximum recursion limit that prevents interpreter termination.
 
 This script finds the maximum safe recursion limit on a particular
diff --git a/Tools/scripts/finddiv.py b/Tools/scripts/finddiv.py
index 558791f..f24a702 100755
--- a/Tools/scripts/finddiv.py
+++ b/Tools/scripts/finddiv.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 
 """finddiv - a grep-like tool that looks for division operators.
 
diff --git a/Tools/scripts/findlinksto.py b/Tools/scripts/findlinksto.py
index d3da7e4..b4c09ef 100755
--- a/Tools/scripts/findlinksto.py
+++ b/Tools/scripts/findlinksto.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 
 # findlinksto
 #
diff --git a/Tools/scripts/findnocoding.py b/Tools/scripts/findnocoding.py
index 78fc8ef..77607ce 100755
--- a/Tools/scripts/findnocoding.py
+++ b/Tools/scripts/findnocoding.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
 
 """List all those Python files that require a coding directive
 
diff --git a/Tools/scripts/fixcid.py b/Tools/scripts/fixcid.py
index c9d3a29..95f7863 100755
--- a/Tools/scripts/fixcid.py
+++ b/Tools/scripts/fixcid.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 
 # Perform massive identifier substitution on C source files.
 # This actually tokenizes the files (to some extent) so it can
diff --git a/Tools/scripts/fixdiv.py b/Tools/scripts/fixdiv.py
index 8b15cc6..4ecbea1 100755
--- a/Tools/scripts/fixdiv.py
+++ b/Tools/scripts/fixdiv.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 
 """fixdiv - tool to fix division operators.
 
diff --git a/Tools/scripts/fixheader.py b/Tools/scripts/fixheader.py
index 1208031..ec84057 100755
--- a/Tools/scripts/fixheader.py
+++ b/Tools/scripts/fixheader.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 
 # Add some standard cpp magic to a header file
 
diff --git a/Tools/scripts/fixnotice.py b/Tools/scripts/fixnotice.py
index d35a339..aac8697 100755
--- a/Tools/scripts/fixnotice.py
+++ b/Tools/scripts/fixnotice.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 
 """(Ostensibly) fix copyright notices in files.
 
diff --git a/Tools/scripts/fixps.py b/Tools/scripts/fixps.py
index fd2ca71..b002261 100755
--- a/Tools/scripts/fixps.py
+++ b/Tools/scripts/fixps.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
 
 # Fix Python script(s) to reference the interpreter via /usr/bin/env python.
 # Warning: this overwrites the file without making a backup.
diff --git a/Tools/scripts/ftpmirror.py b/Tools/scripts/ftpmirror.py
index b79db1a..9e8be1d 100755
--- a/Tools/scripts/ftpmirror.py
+++ b/Tools/scripts/ftpmirror.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 
 """Mirror a remote ftp subtree into a local directory tree.
 
diff --git a/Tools/scripts/google.py b/Tools/scripts/google.py
index 6219c2d..12152bb 100755
--- a/Tools/scripts/google.py
+++ b/Tools/scripts/google.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 
 import sys, webbrowser
 
diff --git a/Tools/scripts/gprof2html.py b/Tools/scripts/gprof2html.py
index cb01c2c..f3c7202 100755
--- a/Tools/scripts/gprof2html.py
+++ b/Tools/scripts/gprof2html.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python2.3
+#! /usr/bin/env python32.3
 
 """Transform gprof(1) output into useful HTML."""
 
diff --git a/Tools/scripts/h2py.py b/Tools/scripts/h2py.py
index 697e7fe..f3c80bd 100755
--- a/Tools/scripts/h2py.py
+++ b/Tools/scripts/h2py.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 
 # Read #define's and translate to Python code.
 # Handle #include statements.
diff --git a/Tools/scripts/ifdef.py b/Tools/scripts/ifdef.py
index 2ed7a66..46167ad 100755
--- a/Tools/scripts/ifdef.py
+++ b/Tools/scripts/ifdef.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 
 # Selectively preprocess #ifdef / #ifndef statements.
 # Usage:
diff --git a/Tools/scripts/lfcr.py b/Tools/scripts/lfcr.py
index 1b9a5b7..d094022 100755
--- a/Tools/scripts/lfcr.py
+++ b/Tools/scripts/lfcr.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 
 "Replace LF with CRLF in argument files.  Print names of changed files."
 
diff --git a/Tools/scripts/linktree.py b/Tools/scripts/linktree.py
index 748b042..982f480 100755
--- a/Tools/scripts/linktree.py
+++ b/Tools/scripts/linktree.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 
 # linktree
 #
diff --git a/Tools/scripts/lll.py b/Tools/scripts/lll.py
index 5ee1504..aa4e550 100755
--- a/Tools/scripts/lll.py
+++ b/Tools/scripts/lll.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 
 # Find symbolic links and show where they point to.
 # Arguments are directories to search; default is current directory.
diff --git a/Tools/scripts/logmerge.py b/Tools/scripts/logmerge.py
index 06750b0..b7245f4 100755
--- a/Tools/scripts/logmerge.py
+++ b/Tools/scripts/logmerge.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 
 """Consolidate a bunch of CVS or RCS logs read from stdin.
 
diff --git a/Tools/scripts/md5sum.py b/Tools/scripts/md5sum.py
index 140c0b3..743da72 100644
--- a/Tools/scripts/md5sum.py
+++ b/Tools/scripts/md5sum.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 
 """Python utility to print MD5 checksums of argument files.
 """
diff --git a/Tools/scripts/methfix.py b/Tools/scripts/methfix.py
index f5fe7cd..030e1c9 100755
--- a/Tools/scripts/methfix.py
+++ b/Tools/scripts/methfix.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 
 # Fix Python source files to avoid using
 #       def method(self, (arg1, ..., argn)):
diff --git a/Tools/scripts/mkreal.py b/Tools/scripts/mkreal.py
index 8bc2ec1..b21909e 100755
--- a/Tools/scripts/mkreal.py
+++ b/Tools/scripts/mkreal.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 
 # mkreal
 #
diff --git a/Tools/scripts/ndiff.py b/Tools/scripts/ndiff.py
index c60c8a8..2422091 100755
--- a/Tools/scripts/ndiff.py
+++ b/Tools/scripts/ndiff.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 
 # Module ndiff version 1.7.0
 # Released to the public domain 08-Dec-2000,
diff --git a/Tools/scripts/nm2def.py b/Tools/scripts/nm2def.py
index 9dfb991..8f07559 100755
--- a/Tools/scripts/nm2def.py
+++ b/Tools/scripts/nm2def.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 """nm2def.py
 
 Helpers to extract symbols from Unix libs and auto-generate
diff --git a/Tools/scripts/objgraph.py b/Tools/scripts/objgraph.py
index 0975a3b..1e1fce0 100755
--- a/Tools/scripts/objgraph.py
+++ b/Tools/scripts/objgraph.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 
 # objgraph
 #
diff --git a/Tools/scripts/parseentities.py b/Tools/scripts/parseentities.py
index 8d93167..5b0f1c6 100755
--- a/Tools/scripts/parseentities.py
+++ b/Tools/scripts/parseentities.py
@@ -1,4 +1,4 @@
-#!/usr/local/bin/python
+#!/usr/bin/env python3
 """ Utility for parsing HTML entity definitions available from:
 
       http://www.w3.org/ as e.g.
diff --git a/Tools/scripts/pdeps.py b/Tools/scripts/pdeps.py
index 5c5a05b..938f31c 100755
--- a/Tools/scripts/pdeps.py
+++ b/Tools/scripts/pdeps.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 
 # pdeps
 #
diff --git a/Tools/scripts/pickle2db.py b/Tools/scripts/pickle2db.py
index a43ffae..b5b6571 100644
--- a/Tools/scripts/pickle2db.py
+++ b/Tools/scripts/pickle2db.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
 
 """
 Synopsis: %(prog)s [-h|-b|-g|-r|-a|-d] [ picklefile ] dbfile
diff --git a/Tools/scripts/pindent.py b/Tools/scripts/pindent.py
index f80a8b7..15b6399 100755
--- a/Tools/scripts/pindent.py
+++ b/Tools/scripts/pindent.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 
 # This file contains a class and a main program that perform three
 # related (though complimentary) formatting operations on Python
diff --git a/Tools/scripts/ptags.py b/Tools/scripts/ptags.py
index ac01356..ca643b3 100755
--- a/Tools/scripts/ptags.py
+++ b/Tools/scripts/ptags.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 
 # ptags
 #
diff --git a/Tools/scripts/pysource.py b/Tools/scripts/pysource.py
index 05c2b86..048131e 100644
--- a/Tools/scripts/pysource.py
+++ b/Tools/scripts/pysource.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
 
 """\
 List python source files.
diff --git a/Tools/scripts/reindent-rst.py b/Tools/scripts/reindent-rst.py
index 55b99eb..246af3e 100755
--- a/Tools/scripts/reindent-rst.py
+++ b/Tools/scripts/reindent-rst.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
 
 # Make a reST file compliant to our pre-commit hook.
 # Currently just remove trailing whitespace.
diff --git a/Tools/scripts/reindent.py b/Tools/scripts/reindent.py
index 8557b5d..4f47b7a 100755
--- a/Tools/scripts/reindent.py
+++ b/Tools/scripts/reindent.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 
 # Released to the public domain, by Tim Peters, 03 October 2000.
 
diff --git a/Tools/scripts/rgrep.py b/Tools/scripts/rgrep.py
index 12d736e..eee6a07 100755
--- a/Tools/scripts/rgrep.py
+++ b/Tools/scripts/rgrep.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 
 """Reverse grep.
 
diff --git a/Tools/scripts/serve.py b/Tools/scripts/serve.py
index 61de63d..e4074c1 100755
--- a/Tools/scripts/serve.py
+++ b/Tools/scripts/serve.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
 '''
 Small wsgiref based web server. Takes a path to serve from and an
 optional port number (defaults to 8000), then tries to serve files.
diff --git a/Tools/scripts/suff.py b/Tools/scripts/suff.py
index 462ec32..8e22a7e 100755
--- a/Tools/scripts/suff.py
+++ b/Tools/scripts/suff.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 
 # suff
 #
diff --git a/Tools/scripts/svneol.py b/Tools/scripts/svneol.py
index 9357c7e..80616a6 100644
--- a/Tools/scripts/svneol.py
+++ b/Tools/scripts/svneol.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 
 """
 SVN helper script.
diff --git a/Tools/scripts/texi2html.py b/Tools/scripts/texi2html.py
index 86229f2..af2147a 100755
--- a/Tools/scripts/texi2html.py
+++ b/Tools/scripts/texi2html.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 
 # Convert GNU texinfo files into HTML, one file per node.
 # Based on Texinfo 2.14.
diff --git a/Tools/scripts/treesync.py b/Tools/scripts/treesync.py
index 8643ee7..b2649c4 100755
--- a/Tools/scripts/treesync.py
+++ b/Tools/scripts/treesync.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 
 """Script to synchronize two source trees.
 
diff --git a/Tools/scripts/untabify.py b/Tools/scripts/untabify.py
index 1a186a3..f21b7c8 100755
--- a/Tools/scripts/untabify.py
+++ b/Tools/scripts/untabify.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 
 "Replace tabs with spaces in argument files.  Print names of changed files."
 
diff --git a/Tools/scripts/which.py b/Tools/scripts/which.py
index a9f4907..4fc37a0 100755
--- a/Tools/scripts/which.py
+++ b/Tools/scripts/which.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 
 # Variant of "which".
 # On stderr, near and total misses are reported.
diff --git a/Tools/scripts/xxci.py b/Tools/scripts/xxci.py
index 8cffc9e..228f0c0 100755
--- a/Tools/scripts/xxci.py
+++ b/Tools/scripts/xxci.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 
 # xxci
 #
diff --git a/Tools/ssl/get-remote-certificate.py b/Tools/ssl/get-remote-certificate.py
index b63428a..67491c1 100644
--- a/Tools/ssl/get-remote-certificate.py
+++ b/Tools/ssl/get-remote-certificate.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
 #
 # fetch the certificate that the server(s) are providing in PEM form
 #
diff --git a/Tools/unicode/comparecodecs.py b/Tools/unicode/comparecodecs.py
index dade1ce..0f5c1e2 100644
--- a/Tools/unicode/comparecodecs.py
+++ b/Tools/unicode/comparecodecs.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
 
 """ Compare the output of two codecs.
 
diff --git a/Tools/webchecker/wcgui.py b/Tools/webchecker/wcgui.py
index 4ce613a..88d8f56 100755
--- a/Tools/webchecker/wcgui.py
+++ b/Tools/webchecker/wcgui.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 
 """GUI interface to webchecker.
 
diff --git a/Tools/webchecker/webchecker.py b/Tools/webchecker/webchecker.py
index 651cf85..7c3124c 100755
--- a/Tools/webchecker/webchecker.py
+++ b/Tools/webchecker/webchecker.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 
 # Original code by Guido van Rossum; extensive changes by Sam Bayer,
 # including code to check URL fragments.
diff --git a/Tools/webchecker/websucker.py b/Tools/webchecker/websucker.py
index 3bbdec3..8076af5 100755
--- a/Tools/webchecker/websucker.py
+++ b/Tools/webchecker/websucker.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 
 """A variant on webchecker that creates a mirror copy of a remote site."""
 
diff --git a/Tools/webchecker/wsgui.py b/Tools/webchecker/wsgui.py
index b2223c4..032523b 100755
--- a/Tools/webchecker/wsgui.py
+++ b/Tools/webchecker/wsgui.py
@@ -1,4 +1,4 @@
-#! /usr/bin/env python
+#! /usr/bin/env python3
 
 """Tkinter-based GUI for websucker.