← Back to team overview

launchpad-reviewers team mailing list archive

[Merge] ~cjwatson/launchpad:py3-shebang into launchpad:master

 

Colin Watson has proposed merging ~cjwatson/launchpad:py3-shebang into launchpad:master.

Commit message:
Change #! of most python2 scripts to python3

Requested reviews:
  Launchpad code reviewers (launchpad-reviewers)

For more details, see:
https://code.launchpad.net/~cjwatson/launchpad/+git/launchpad/+merge/406468

I skipped a couple of utilities that still need some work and that don't import anything from Launchpad's virtualenv.
-- 
Your team Launchpad code reviewers is requested to review the proposed merge of ~cjwatson/launchpad:py3-shebang into launchpad:master.
diff --git a/cronscripts/allocate-revision-karma.py b/cronscripts/allocate-revision-karma.py
index 5c4ad8a..d4ed075 100755
--- a/cronscripts/allocate-revision-karma.py
+++ b/cronscripts/allocate-revision-karma.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python2 -S
+#!/usr/bin/python3 -S
 #
 # Copyright 2009 Canonical Ltd.  This software is licensed under the
 # GNU Affero General Public License version 3 (see the file LICENSE).
diff --git a/cronscripts/buildd-retry-depwait.py b/cronscripts/buildd-retry-depwait.py
index 0010789..0d51bde 100755
--- a/cronscripts/buildd-retry-depwait.py
+++ b/cronscripts/buildd-retry-depwait.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python2 -S
+#!/usr/bin/python3 -S
 #
 # Copyright 2012 Canonical Ltd.  This software is licensed under the
 # GNU Affero General Public License version 3 (see the file LICENSE).
diff --git a/cronscripts/check-teamparticipation.py b/cronscripts/check-teamparticipation.py
index e7341cf..f3343f6 100755
--- a/cronscripts/check-teamparticipation.py
+++ b/cronscripts/check-teamparticipation.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python2 -S
+#!/usr/bin/python3 -S
 #
 # Copyright 2009-2011 Canonical Ltd.  This software is licensed under the
 # GNU Affero General Public License version 3 (see the file LICENSE).
diff --git a/cronscripts/checkwatches.py b/cronscripts/checkwatches.py
index 55cffa8..25a5d07 100755
--- a/cronscripts/checkwatches.py
+++ b/cronscripts/checkwatches.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python2 -S
+#!/usr/bin/python3 -S
 #
 # Copyright 2009 Canonical Ltd.  This software is licensed under the
 # GNU Affero General Public License version 3 (see the file LICENSE).
diff --git a/cronscripts/daily_product_jobs.py b/cronscripts/daily_product_jobs.py
index aea1daf..0c76d5f 100755
--- a/cronscripts/daily_product_jobs.py
+++ b/cronscripts/daily_product_jobs.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python2 -S
+#!/usr/bin/python3 -S
 #
 # Copyright 2012 Canonical Ltd.  This software is licensed under the
 # GNU Affero General Public License version 3 (see the file LICENSE).
diff --git a/cronscripts/distributionmirror-prober.py b/cronscripts/distributionmirror-prober.py
index 7ef39b3..073e4e2 100755
--- a/cronscripts/distributionmirror-prober.py
+++ b/cronscripts/distributionmirror-prober.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python2 -S
+#!/usr/bin/python3 -S
 #
 # Copyright 2009-2020 Canonical Ltd.  This software is licensed under the
 # GNU Affero General Public License version 3 (see the file LICENSE).
diff --git a/cronscripts/expire-archive-files.py b/cronscripts/expire-archive-files.py
index a2952a2..a87e8a0 100755
--- a/cronscripts/expire-archive-files.py
+++ b/cronscripts/expire-archive-files.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python2 -S
+#!/usr/bin/python3 -S
 #
 # Copyright 2009 Canonical Ltd.  This software is licensed under the
 # GNU Affero General Public License version 3 (see the file LICENSE).
diff --git a/cronscripts/expire-bugtasks.py b/cronscripts/expire-bugtasks.py
index 628da0a..3265a42 100755
--- a/cronscripts/expire-bugtasks.py
+++ b/cronscripts/expire-bugtasks.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python2 -S
+#!/usr/bin/python3 -S
 #
 # Copyright 2009-2012 Canonical Ltd.  This software is licensed under the
 # GNU Affero General Public License version 3 (see the file LICENSE).
diff --git a/cronscripts/expire-questions.py b/cronscripts/expire-questions.py
index 9e1f2eb..e87e873 100755
--- a/cronscripts/expire-questions.py
+++ b/cronscripts/expire-questions.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python2 -S
+#!/usr/bin/python3 -S
 #
 # Copyright 2009 Canonical Ltd.  This software is licensed under the
 # GNU Affero General Public License version 3 (see the file LICENSE).
diff --git a/cronscripts/flag-expired-memberships.py b/cronscripts/flag-expired-memberships.py
index 5268105..e9500e5 100755
--- a/cronscripts/flag-expired-memberships.py
+++ b/cronscripts/flag-expired-memberships.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python2 -S
+#!/usr/bin/python3 -S
 #
 # Copyright 2009 Canonical Ltd.  This software is licensed under the
 # GNU Affero General Public License version 3 (see the file LICENSE).
diff --git a/cronscripts/foaf-update-karma-cache.py b/cronscripts/foaf-update-karma-cache.py
index c31bc1c..da50f04 100755
--- a/cronscripts/foaf-update-karma-cache.py
+++ b/cronscripts/foaf-update-karma-cache.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python2 -S
+#!/usr/bin/python3 -S
 #
 # Copyright 2009-2011 Canonical Ltd.  This software is licensed under the
 # GNU Affero General Public License version 3 (see the file LICENSE).
diff --git a/cronscripts/garbo-daily.py b/cronscripts/garbo-daily.py
index f4d9ee7..471191e 100755
--- a/cronscripts/garbo-daily.py
+++ b/cronscripts/garbo-daily.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python2 -S
+#!/usr/bin/python3 -S
 #
 # Copyright 2009 Canonical Ltd.  This software is licensed under the
 # GNU Affero General Public License version 3 (see the file LICENSE).
diff --git a/cronscripts/garbo-frequently.py b/cronscripts/garbo-frequently.py
index a6c7309..127aa38 100755
--- a/cronscripts/garbo-frequently.py
+++ b/cronscripts/garbo-frequently.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python2 -S
+#!/usr/bin/python3 -S
 #
 # Copyright 2011 Canonical Ltd.  This software is licensed under the
 # GNU Affero General Public License version 3 (see the file LICENSE).
diff --git a/cronscripts/garbo-hourly.py b/cronscripts/garbo-hourly.py
index 3c2b35f..33334ca 100755
--- a/cronscripts/garbo-hourly.py
+++ b/cronscripts/garbo-hourly.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python2 -S
+#!/usr/bin/python3 -S
 #
 # Copyright 2009 Canonical Ltd.  This software is licensed under the
 # GNU Affero General Public License version 3 (see the file LICENSE).
diff --git a/cronscripts/generate-contents-files.py b/cronscripts/generate-contents-files.py
index c9ccb05..7b78a5e 100755
--- a/cronscripts/generate-contents-files.py
+++ b/cronscripts/generate-contents-files.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python2 -S
+#!/usr/bin/python3 -S
 #
 # Copyright 2011 Canonical Ltd.  This software is licensed under the
 # GNU Affero General Public License version 3 (see the file LICENSE).
diff --git a/cronscripts/generate-ppa-htaccess.py b/cronscripts/generate-ppa-htaccess.py
index 1e45537..7945879 100755
--- a/cronscripts/generate-ppa-htaccess.py
+++ b/cronscripts/generate-ppa-htaccess.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python2 -S
+#!/usr/bin/python3 -S
 #
 # Copyright 2009 Canonical Ltd.  This software is licensed under the
 # GNU Affero General Public License version 3 (see the file LICENSE).
diff --git a/cronscripts/language-pack-exporter.py b/cronscripts/language-pack-exporter.py
index e8579b6..b733593 100755
--- a/cronscripts/language-pack-exporter.py
+++ b/cronscripts/language-pack-exporter.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python2 -S
+#!/usr/bin/python3 -S
 #
 # Copyright 2009 Canonical Ltd.  This software is licensed under the
 # GNU Affero General Public License version 3 (see the file LICENSE).
diff --git a/cronscripts/librarian-feed-swift.py b/cronscripts/librarian-feed-swift.py
index 2f8201f..f2b817a 100755
--- a/cronscripts/librarian-feed-swift.py
+++ b/cronscripts/librarian-feed-swift.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python2 -S
+#!/usr/bin/python3 -S
 #
 # Copyright 2013 Canonical Ltd.  This software is licensed under the
 # GNU Affero General Public License version 3 (see the file LICENSE).
diff --git a/cronscripts/librarian-gc.py b/cronscripts/librarian-gc.py
index 5eb16f8..cc18c12 100755
--- a/cronscripts/librarian-gc.py
+++ b/cronscripts/librarian-gc.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python2 -S
+#!/usr/bin/python3 -S
 #
 # Copyright 2009-2011 Canonical Ltd.  This software is licensed under the
 # GNU Affero General Public License version 3 (see the file LICENSE).
diff --git a/cronscripts/parse-librarian-apache-access-logs.py b/cronscripts/parse-librarian-apache-access-logs.py
index 9736e06..a4903fe 100755
--- a/cronscripts/parse-librarian-apache-access-logs.py
+++ b/cronscripts/parse-librarian-apache-access-logs.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python2 -S
+#!/usr/bin/python3 -S
 #
 # Copyright 2009-2011 Canonical Ltd.  This software is licensed under the
 # GNU Affero General Public License version 3 (see the file LICENSE).
diff --git a/cronscripts/parse-ppa-apache-access-logs.py b/cronscripts/parse-ppa-apache-access-logs.py
index c70e4b0..b42a9ec 100755
--- a/cronscripts/parse-ppa-apache-access-logs.py
+++ b/cronscripts/parse-ppa-apache-access-logs.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python2 -S
+#!/usr/bin/python3 -S
 #
 # Copyright 2010 Canonical Ltd.  This software is licensed under the
 # GNU Affero General Public License version 3 (see the file LICENSE).
diff --git a/cronscripts/ppa-generate-keys.py b/cronscripts/ppa-generate-keys.py
index febcd39..2df6063 100755
--- a/cronscripts/ppa-generate-keys.py
+++ b/cronscripts/ppa-generate-keys.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python2 -S
+#!/usr/bin/python3 -S
 #
 # Copyright 2009 Canonical Ltd.  This software is licensed under the
 # GNU Affero General Public License version 3 (see the file LICENSE).
diff --git a/cronscripts/process-job-source-groups.py b/cronscripts/process-job-source-groups.py
index da533eb..14b7199 100755
--- a/cronscripts/process-job-source-groups.py
+++ b/cronscripts/process-job-source-groups.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python2 -S
+#!/usr/bin/python3 -S
 #
 # Copyright 2009, 2010 Canonical Ltd.  This software is licensed under the
 # GNU Affero General Public License version 3 (see the file LICENSE).
diff --git a/cronscripts/process-job-source.py b/cronscripts/process-job-source.py
index 3fa3013..dd65c46 100755
--- a/cronscripts/process-job-source.py
+++ b/cronscripts/process-job-source.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python2 -S
+#!/usr/bin/python3 -S
 #
 # Copyright 2009, 2010 Canonical Ltd.  This software is licensed under the
 # GNU Affero General Public License version 3 (see the file LICENSE).
diff --git a/cronscripts/process-mail.py b/cronscripts/process-mail.py
index 68a745b..02597a8 100755
--- a/cronscripts/process-mail.py
+++ b/cronscripts/process-mail.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python2 -S
+#!/usr/bin/python3 -S
 #
 # Copyright 2009 Canonical Ltd.  This software is licensed under the
 # GNU Affero General Public License version 3 (see the file LICENSE).
diff --git a/cronscripts/product-release-finder.py b/cronscripts/product-release-finder.py
index a949bc5..b9430c2 100755
--- a/cronscripts/product-release-finder.py
+++ b/cronscripts/product-release-finder.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python2 -S
+#!/usr/bin/python3 -S
 #
 # Copyright 2009 Canonical Ltd.  This software is licensed under the
 # GNU Affero General Public License version 3 (see the file LICENSE).
diff --git a/cronscripts/publish-ftpmaster.py b/cronscripts/publish-ftpmaster.py
index f085ba8..351fa4d 100755
--- a/cronscripts/publish-ftpmaster.py
+++ b/cronscripts/publish-ftpmaster.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python2 -S
+#!/usr/bin/python3 -S
 #
 # Copyright 2011 Canonical Ltd.  This software is licensed under the
 # GNU Affero General Public License version 3 (see the file LICENSE).
diff --git a/cronscripts/repack_git_repositories.py b/cronscripts/repack_git_repositories.py
index 19ab32b..b601223 100755
--- a/cronscripts/repack_git_repositories.py
+++ b/cronscripts/repack_git_repositories.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python2 -S
+#!/usr/bin/python3 -S
 #
 # Copyright 2021 Canonical Ltd.  This software is licensed under the
 # GNU Affero General Public License version 3 (see the file LICENSE).
diff --git a/cronscripts/request_daily_builds.py b/cronscripts/request_daily_builds.py
index 4c69c13..5b706c7 100755
--- a/cronscripts/request_daily_builds.py
+++ b/cronscripts/request_daily_builds.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python2 -S
+#!/usr/bin/python3 -S
 #
 # Copyright 2010-2018 Canonical Ltd.  This software is licensed under the
 # GNU Affero General Public License version 3 (see the file LICENSE).
diff --git a/cronscripts/rosetta-approve-imports.py b/cronscripts/rosetta-approve-imports.py
index 8ae45ba..1ba9d7b 100755
--- a/cronscripts/rosetta-approve-imports.py
+++ b/cronscripts/rosetta-approve-imports.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python2 -S
+#!/usr/bin/python3 -S
 #
 # Copyright 2009 Canonical Ltd.  This software is licensed under the
 # GNU Affero General Public License version 3 (see the file LICENSE).
diff --git a/cronscripts/rosetta-export-queue.py b/cronscripts/rosetta-export-queue.py
index 1570cf7..b9fb461 100755
--- a/cronscripts/rosetta-export-queue.py
+++ b/cronscripts/rosetta-export-queue.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python2 -S
+#!/usr/bin/python3 -S
 #
 # Copyright 2009-2011 Canonical Ltd.  This software is licensed under the
 # GNU Affero General Public License version 3 (see the file LICENSE).
diff --git a/cronscripts/rosetta-pofile-stats.py b/cronscripts/rosetta-pofile-stats.py
index 0d70c2c..ca0dce7 100755
--- a/cronscripts/rosetta-pofile-stats.py
+++ b/cronscripts/rosetta-pofile-stats.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python2 -S
+#!/usr/bin/python3 -S
 #
 # Copyright 2009 Canonical Ltd.  This software is licensed under the
 # GNU Affero General Public License version 3 (see the file LICENSE).
diff --git a/cronscripts/rosetta-poimport.py b/cronscripts/rosetta-poimport.py
index 8704250..0c0f082 100755
--- a/cronscripts/rosetta-poimport.py
+++ b/cronscripts/rosetta-poimport.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python2 -S
+#!/usr/bin/python3 -S
 #
 # Copyright 2009 Canonical Ltd.  This software is licensed under the
 # GNU Affero General Public License version 3 (see the file LICENSE).
diff --git a/cronscripts/send-bug-notifications.py b/cronscripts/send-bug-notifications.py
index 358775e..0a3fcbf 100755
--- a/cronscripts/send-bug-notifications.py
+++ b/cronscripts/send-bug-notifications.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python2 -S
+#!/usr/bin/python3 -S
 #
 # Copyright 2009 Canonical Ltd.  This software is licensed under the
 # GNU Affero General Public License version 3 (see the file LICENSE).
diff --git a/cronscripts/send-person-notifications.py b/cronscripts/send-person-notifications.py
index 37adfbd..0eb4989 100755
--- a/cronscripts/send-person-notifications.py
+++ b/cronscripts/send-person-notifications.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python2 -S
+#!/usr/bin/python3 -S
 #
 # Copyright 2009 Canonical Ltd.  This software is licensed under the
 # GNU Affero General Public License version 3 (see the file LICENSE).
diff --git a/cronscripts/supermirror-pull.py b/cronscripts/supermirror-pull.py
index 8c94787..d1b82ed 100755
--- a/cronscripts/supermirror-pull.py
+++ b/cronscripts/supermirror-pull.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python2 -S
+#!/usr/bin/python3 -S
 #
 # Copyright 2009-2011 Canonical Ltd.  This software is licensed under the
 # GNU Affero General Public License version 3 (see the file LICENSE).
diff --git a/cronscripts/translations-export-to-branch.py b/cronscripts/translations-export-to-branch.py
index 61b9ca0..520ced7 100755
--- a/cronscripts/translations-export-to-branch.py
+++ b/cronscripts/translations-export-to-branch.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python2 -S
+#!/usr/bin/python3 -S
 #
 # Copyright 2009 Canonical Ltd.  This software is licensed under the
 # GNU Affero General Public License version 3 (see the file LICENSE).
diff --git a/cronscripts/update-bugtask-targetnamecaches.py b/cronscripts/update-bugtask-targetnamecaches.py
index 2da1e8d..3a67755 100755
--- a/cronscripts/update-bugtask-targetnamecaches.py
+++ b/cronscripts/update-bugtask-targetnamecaches.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python2 -S
+#!/usr/bin/python3 -S
 #
 # Copyright 2009 Canonical Ltd.  This software is licensed under the
 # GNU Affero General Public License version 3 (see the file LICENSE).
diff --git a/cronscripts/update-bugzilla-remote-components.py b/cronscripts/update-bugzilla-remote-components.py
index 72afc5d..2c3e11f 100755
--- a/cronscripts/update-bugzilla-remote-components.py
+++ b/cronscripts/update-bugzilla-remote-components.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python2 -S
+#!/usr/bin/python3 -S
 #
 # Copyright 2010-2011 Canonical Ltd.  This software is licensed under the
 # GNU Affero General Public License version 3 (see the file LICENSE).
diff --git a/cronscripts/update-cve.py b/cronscripts/update-cve.py
index add5993..1941605 100755
--- a/cronscripts/update-cve.py
+++ b/cronscripts/update-cve.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python2 -S
+#!/usr/bin/python3 -S
 #
 # Copyright 2009 Canonical Ltd.  This software is licensed under the
 # GNU Affero General Public License version 3 (see the file LICENSE).
diff --git a/cronscripts/update-database-stats.py b/cronscripts/update-database-stats.py
index 4f6a52f..e47ff9a 100755
--- a/cronscripts/update-database-stats.py
+++ b/cronscripts/update-database-stats.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python2 -S
+#!/usr/bin/python3 -S
 # Copyright 2010 Canonical Ltd.  This software is licensed under the
 # GNU Affero General Public License version 3 (see the file LICENSE).
 
diff --git a/cronscripts/update-pkgcache.py b/cronscripts/update-pkgcache.py
index 1cf7186..0cea878 100755
--- a/cronscripts/update-pkgcache.py
+++ b/cronscripts/update-pkgcache.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python2 -S
+#!/usr/bin/python3 -S
 #
 # Copyright 2009-2021 Canonical Ltd.  This software is licensed under the
 # GNU Affero General Public License version 3 (see the file LICENSE).
diff --git a/cronscripts/update-remote-product.py b/cronscripts/update-remote-product.py
index bbdb619..63ada7a 100755
--- a/cronscripts/update-remote-product.py
+++ b/cronscripts/update-remote-product.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python2 -S
+#!/usr/bin/python3 -S
 #
 # Copyright 2009-2011 Canonical Ltd.  This software is licensed under the
 # GNU Affero General Public License version 3 (see the file LICENSE).
diff --git a/cronscripts/update-sourceforge-remote-products.py b/cronscripts/update-sourceforge-remote-products.py
index 7b4a0c6..7e3a624 100755
--- a/cronscripts/update-sourceforge-remote-products.py
+++ b/cronscripts/update-sourceforge-remote-products.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python2 -S
+#!/usr/bin/python3 -S
 #
 # Copyright 2009-2011 Canonical Ltd.  This software is licensed under the
 # GNU Affero General Public License version 3 (see the file LICENSE).
diff --git a/cronscripts/update-standing.py b/cronscripts/update-standing.py
index 0a841bb..3720121 100755
--- a/cronscripts/update-standing.py
+++ b/cronscripts/update-standing.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python2 -S
+#!/usr/bin/python3 -S
 #
 # Copyright 2009 Canonical Ltd.  This software is licensed under the
 # GNU Affero General Public License version 3 (see the file LICENSE).
diff --git a/cronscripts/update-stats.py b/cronscripts/update-stats.py
index 43d3602..11a74a3 100755
--- a/cronscripts/update-stats.py
+++ b/cronscripts/update-stats.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python2 -S
+#!/usr/bin/python3 -S
 #
 # Copyright 2009-2011 Canonical Ltd.  This software is licensed under the
 # GNU Affero General Public License version 3 (see the file LICENSE).
diff --git a/database/replication/preamble.py b/database/replication/preamble.py
index 87d0d9e..249b0a4 100755
--- a/database/replication/preamble.py
+++ b/database/replication/preamble.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python2 -S
+#!/usr/bin/python3 -S
 #
 # Copyright 2009-2011 Canonical Ltd.  This software is licensed under the
 # GNU Affero General Public License version 3 (see the file LICENSE).
diff --git a/database/replication/sync.py b/database/replication/sync.py
index 0e44ada..1f7c117 100755
--- a/database/replication/sync.py
+++ b/database/replication/sync.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python2 -S
+#!/usr/bin/python3 -S
 #
 # Copyright 2010 Canonical Ltd.  This software is licensed under the
 # GNU Affero General Public License version 3 (see the file LICENSE).
diff --git a/database/replication/walblock.py b/database/replication/walblock.py
index 46a36ec..8e0327a 100755
--- a/database/replication/walblock.py
+++ b/database/replication/walblock.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python2
+#!/usr/bin/python3
 #
 # Copyright 2014 Canonical Ltd.  This software is licensed under the
 # GNU Affero General Public License version 3 (see the file LICENSE).
diff --git a/database/schema/emptytables.py b/database/schema/emptytables.py
index e035532..3605910 100755
--- a/database/schema/emptytables.py
+++ b/database/schema/emptytables.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python2 -S
+#!/usr/bin/python3 -S
 #
 # Copyright 2009 Canonical Ltd.  This software is licensed under the
 # GNU Affero General Public License version 3 (see the file LICENSE).
diff --git a/database/schema/fti.py b/database/schema/fti.py
index fa15c9a..1835249 100755
--- a/database/schema/fti.py
+++ b/database/schema/fti.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python2 -S
+#!/usr/bin/python3 -S
 #
 # Copyright 2009-2012 Canonical Ltd.  This software is licensed under the
 # GNU Affero General Public License version 3 (see the file LICENSE).
diff --git a/database/schema/full-update.py b/database/schema/full-update.py
index c217412..974c4ec 100755
--- a/database/schema/full-update.py
+++ b/database/schema/full-update.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python2 -S
+#!/usr/bin/python3 -S
 # Copyright 2011-2012 Canonical Ltd.  This software is licensed under the
 # GNU Affero General Public License version 3 (see the file LICENSE).
 
diff --git a/database/schema/online_fti_updater.py b/database/schema/online_fti_updater.py
index 456b22f..effbdb0 100755
--- a/database/schema/online_fti_updater.py
+++ b/database/schema/online_fti_updater.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python2 -S
+#!/usr/bin/python3 -S
 #
 # Copyright 2009 Canonical Ltd.  This software is licensed under the
 # GNU Affero General Public License version 3 (see the file LICENSE).
diff --git a/database/schema/preflight.py b/database/schema/preflight.py
index 6f26ddc..a02841a 100755
--- a/database/schema/preflight.py
+++ b/database/schema/preflight.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python2 -S
+#!/usr/bin/python3 -S
 # Copyright 2011-2018 Canonical Ltd.  This software is licensed under the
 # GNU Affero General Public License version 3 (see the file LICENSE).
 
diff --git a/database/schema/reset_sequences.py b/database/schema/reset_sequences.py
index 38f379a..9e3aeec 100755
--- a/database/schema/reset_sequences.py
+++ b/database/schema/reset_sequences.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python2 -S
+#!/usr/bin/python3 -S
 #
 # Copyright 2009 Canonical Ltd.  This software is licensed under the
 # GNU Affero General Public License version 3 (see the file LICENSE).
diff --git a/database/schema/security.py b/database/schema/security.py
index f5910ae..28219ee 100755
--- a/database/schema/security.py
+++ b/database/schema/security.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python2 -S
+#!/usr/bin/python3 -S
 #
 # Copyright 2009-2010 Canonical Ltd.  This software is licensed under the
 # GNU Affero General Public License version 3 (see the file LICENSE).
diff --git a/database/schema/sort_sql.py b/database/schema/sort_sql.py
index bde6bfa..d70fd42 100755
--- a/database/schema/sort_sql.py
+++ b/database/schema/sort_sql.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python2 -S
+#!/usr/bin/python3 -S
 #
 # Copyright 2009 Canonical Ltd.  This software is licensed under the
 # GNU Affero General Public License version 3 (see the file LICENSE).
diff --git a/database/schema/unautovacuumable.py b/database/schema/unautovacuumable.py
index 4e09282..a8856b8 100755
--- a/database/schema/unautovacuumable.py
+++ b/database/schema/unautovacuumable.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python2 -S
+#!/usr/bin/python3 -S
 #
 # Copyright 2009-2011 Canonical Ltd.  This software is licensed under the
 # GNU Affero General Public License version 3 (see the file LICENSE).
diff --git a/database/schema/upgrade.py b/database/schema/upgrade.py
index 1b92d25..3ecba33 100755
--- a/database/schema/upgrade.py
+++ b/database/schema/upgrade.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python2 -S
+#!/usr/bin/python3 -S
 #
 # Copyright 2009-2020 Canonical Ltd.  This software is licensed under the
 # GNU Affero General Public License version 3 (see the file LICENSE).
diff --git a/lib/lp/archivepublisher/scripts/generate_ppa_htaccess.py b/lib/lp/archivepublisher/scripts/generate_ppa_htaccess.py
index 5ddcc0e..104b92a 100644
--- a/lib/lp/archivepublisher/scripts/generate_ppa_htaccess.py
+++ b/lib/lp/archivepublisher/scripts/generate_ppa_htaccess.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python2
+#!/usr/bin/python3
 #
 # Copyright 2009-2011 Canonical Ltd.  This software is licensed under the
 # GNU Affero General Public License version 3 (see the file LICENSE).
diff --git a/lib/lp/archiveuploader/tests/test_tagfiles.py b/lib/lp/archiveuploader/tests/test_tagfiles.py
index 5c541d9..766438d 100755
--- a/lib/lp/archiveuploader/tests/test_tagfiles.py
+++ b/lib/lp/archiveuploader/tests/test_tagfiles.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python2
+#!/usr/bin/python3
 #
 # Copyright 2009-2018 Canonical Ltd.  This software is licensed under the
 # GNU Affero General Public License version 3 (see the file LICENSE).
diff --git a/lib/lp/archiveuploader/tests/test_uploadpolicy.py b/lib/lp/archiveuploader/tests/test_uploadpolicy.py
index 1c59f9c..0f2bab7 100644
--- a/lib/lp/archiveuploader/tests/test_uploadpolicy.py
+++ b/lib/lp/archiveuploader/tests/test_uploadpolicy.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python2
+#!/usr/bin/python3
 #
 # Copyright 2010-2018 Canonical Ltd.  This software is licensed under the
 # GNU Affero General Public License version 3 (see the file LICENSE).
diff --git a/lib/lp/archiveuploader/tests/test_utils.py b/lib/lp/archiveuploader/tests/test_utils.py
index 52caef5..3b538fd 100755
--- a/lib/lp/archiveuploader/tests/test_utils.py
+++ b/lib/lp/archiveuploader/tests/test_utils.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python2
+#!/usr/bin/python3
 #
 # Copyright 2009-2018 Canonical Ltd.  This software is licensed under the
 # GNU Affero General Public License version 3 (see the file LICENSE).
diff --git a/lib/lp/code/scripts/tests/test_merge_proposal_jobs.py b/lib/lp/code/scripts/tests/test_merge_proposal_jobs.py
index df1d6ff..d28786b 100644
--- a/lib/lp/code/scripts/tests/test_merge_proposal_jobs.py
+++ b/lib/lp/code/scripts/tests/test_merge_proposal_jobs.py
@@ -1,4 +1,4 @@
-#! /usr/bin/python2
+#! /usr/bin/python3
 #
 # Copyright 2009-2010 Canonical Ltd.  This software is licensed under the
 # GNU Affero General Public License version 3 (see the file LICENSE).
diff --git a/lib/lp/code/scripts/tests/test_scan_branches.py b/lib/lp/code/scripts/tests/test_scan_branches.py
index 91b77b1..d2eed84 100644
--- a/lib/lp/code/scripts/tests/test_scan_branches.py
+++ b/lib/lp/code/scripts/tests/test_scan_branches.py
@@ -1,4 +1,4 @@
-#! /usr/bin/python2
+#! /usr/bin/python3
 #
 # Copyright 2010-2020 Canonical Ltd.  This software is licensed under the
 # GNU Affero General Public License version 3 (see the file LICENSE).
diff --git a/lib/lp/codehosting/scanner/bzrsync.py b/lib/lp/codehosting/scanner/bzrsync.py
index fc26a28..bcf8960 100755
--- a/lib/lp/codehosting/scanner/bzrsync.py
+++ b/lib/lp/codehosting/scanner/bzrsync.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python2
+#!/usr/bin/python3
 #
 # Copyright 2009-2018 Canonical Ltd.  This software is licensed under the
 # GNU Affero General Public License version 3 (see the file LICENSE).
diff --git a/lib/lp/codehosting/scanner/tests/test_bzrsync.py b/lib/lp/codehosting/scanner/tests/test_bzrsync.py
index 931af4e..4650909 100644
--- a/lib/lp/codehosting/scanner/tests/test_bzrsync.py
+++ b/lib/lp/codehosting/scanner/tests/test_bzrsync.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python2
+#!/usr/bin/python3
 #
 # Copyright 2009-2019 Canonical Ltd.  This software is licensed under the
 # GNU Affero General Public License version 3 (see the file LICENSE).
diff --git a/lib/lp/registry/tests/distributionmirror_http_server.py b/lib/lp/registry/tests/distributionmirror_http_server.py
index 8dca6db..a5d93df 100644
--- a/lib/lp/registry/tests/distributionmirror_http_server.py
+++ b/lib/lp/registry/tests/distributionmirror_http_server.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python2
+#!/usr/bin/python3
 #
 # Copyright 2009-2020 Canonical Ltd.  This software is licensed under the
 # GNU Affero General Public License version 3 (see the file LICENSE).
diff --git a/lib/lp/services/librarian/smoketest.py b/lib/lp/services/librarian/smoketest.py
index 4391e0c..5fd3a2b 100644
--- a/lib/lp/services/librarian/smoketest.py
+++ b/lib/lp/services/librarian/smoketest.py
@@ -1,4 +1,4 @@
-#! /usr/bin/python2 -S
+#! /usr/bin/python3 -S
 #
 # Copyright 2010-2011 Canonical Ltd.  This software is licensed under the
 # GNU Affero General Public License version 3 (see the file LICENSE).
diff --git a/lib/lp/services/scripts/tests/cronscript-crash.py b/lib/lp/services/scripts/tests/cronscript-crash.py
index 09cba19..4675beb 100755
--- a/lib/lp/services/scripts/tests/cronscript-crash.py
+++ b/lib/lp/services/scripts/tests/cronscript-crash.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python2 -S
+#!/usr/bin/python3 -S
 # Copyright 2010-2017 Canonical Ltd.  This software is licensed under the
 # GNU Affero General Public License version 3 (see the file LICENSE).
 
diff --git a/lib/lp/services/sitesearch/bingtestservice.py b/lib/lp/services/sitesearch/bingtestservice.py
index 878beeb..859f980 100755
--- a/lib/lp/services/sitesearch/bingtestservice.py
+++ b/lib/lp/services/sitesearch/bingtestservice.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python2
+#!/usr/bin/python3
 #
 # Copyright 2018 Canonical Ltd.  This software is licensed under the
 # GNU Affero General Public License version 3 (see the file LICENSE).
diff --git a/lib/lp/services/sitesearch/testservice.py b/lib/lp/services/sitesearch/testservice.py
index 3e31609..5a475c1 100644
--- a/lib/lp/services/sitesearch/testservice.py
+++ b/lib/lp/services/sitesearch/testservice.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python2
+#!/usr/bin/python3
 #
 # Copyright 2009-2018 Canonical Ltd.  This software is licensed under the
 # GNU Affero General Public License version 3 (see the file LICENSE).
diff --git a/lib/lp/soyuz/scripts/expire_archive_files.py b/lib/lp/soyuz/scripts/expire_archive_files.py
index e510139..70cae70 100755
--- a/lib/lp/soyuz/scripts/expire_archive_files.py
+++ b/lib/lp/soyuz/scripts/expire_archive_files.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python2
+#!/usr/bin/python3
 #
 # Copyright 2009 Canonical Ltd.  This software is licensed under the
 # GNU Affero General Public License version 3 (see the file LICENSE).
diff --git a/lib/lp/translations/scripts/reupload_translations.py b/lib/lp/translations/scripts/reupload_translations.py
index c18db3e..56644ca 100644
--- a/lib/lp/translations/scripts/reupload_translations.py
+++ b/lib/lp/translations/scripts/reupload_translations.py
@@ -1,4 +1,4 @@
-#! /usr/bin/python2
+#! /usr/bin/python3
 #
 # Copyright 2009 Canonical Ltd.  This software is licensed under the
 # GNU Affero General Public License version 3 (see the file LICENSE).
diff --git a/lib/lp/translations/scripts/tests/test_remove_translations.py b/lib/lp/translations/scripts/tests/test_remove_translations.py
index dc16088..ca9658e 100644
--- a/lib/lp/translations/scripts/tests/test_remove_translations.py
+++ b/lib/lp/translations/scripts/tests/test_remove_translations.py
@@ -1,4 +1,4 @@
-#! /usr/bin/python2
+#! /usr/bin/python3
 #
 # Copyright 2009-2017 Canonical Ltd.  This software is licensed under the
 # GNU Affero General Public License version 3 (see the file LICENSE).
diff --git a/lib/lp/translations/scripts/tests/test_reupload_translations.py b/lib/lp/translations/scripts/tests/test_reupload_translations.py
index c17224f..923c514 100644
--- a/lib/lp/translations/scripts/tests/test_reupload_translations.py
+++ b/lib/lp/translations/scripts/tests/test_reupload_translations.py
@@ -1,4 +1,4 @@
-#! /usr/bin/python2
+#! /usr/bin/python3
 #
 # Copyright 2009-2011 Canonical Ltd.  This software is licensed under the
 # GNU Affero General Public License version 3 (see the file LICENSE).
diff --git a/lib/lp/translations/scripts/tests/test_validate_translations_file.py b/lib/lp/translations/scripts/tests/test_validate_translations_file.py
index c441c54..cb3f517 100644
--- a/lib/lp/translations/scripts/tests/test_validate_translations_file.py
+++ b/lib/lp/translations/scripts/tests/test_validate_translations_file.py
@@ -1,4 +1,4 @@
-#! /usr/bin/python2
+#! /usr/bin/python3
 #
 # Copyright 2010 Canonical Ltd.  This software is licensed under the
 # GNU Affero General Public License version 3 (see the file LICENSE).
diff --git a/scripts/add-missing-builds.py b/scripts/add-missing-builds.py
index 792279f..1caa92d 100755
--- a/scripts/add-missing-builds.py
+++ b/scripts/add-missing-builds.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python2 -S
+#!/usr/bin/python3 -S
 #
 # Copyright 2010 Canonical Ltd.  This software is licensed under the
 # GNU Affero General Public License version 3 (see the file LICENSE).
diff --git a/scripts/branch-rewrite.py b/scripts/branch-rewrite.py
index e56db27..2e3717b 100755
--- a/scripts/branch-rewrite.py
+++ b/scripts/branch-rewrite.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python2 -uS
+#!/usr/bin/python3 -uS
 #
 # Copyright 2009-2012 Canonical Ltd.  This software is licensed under the
 # GNU Affero General Public License version 3 (see the file LICENSE).
diff --git a/scripts/bug-export.py b/scripts/bug-export.py
index 8c39998..0e5f2e2 100755
--- a/scripts/bug-export.py
+++ b/scripts/bug-export.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python2 -S
+#!/usr/bin/python3 -S
 #
 # Copyright 2009 Canonical Ltd.  This software is licensed under the
 # GNU Affero General Public License version 3 (see the file LICENSE).
diff --git a/scripts/bug-import.py b/scripts/bug-import.py
index c2d4e71..cfc65d1 100755
--- a/scripts/bug-import.py
+++ b/scripts/bug-import.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python2 -S
+#!/usr/bin/python3 -S
 #
 # Copyright 2009-2011 Canonical Ltd.  This software is licensed under the
 # GNU Affero General Public License version 3 (see the file LICENSE).
diff --git a/scripts/bugsummary-rebuild.py b/scripts/bugsummary-rebuild.py
index fe6f4f1..d697b2b 100755
--- a/scripts/bugsummary-rebuild.py
+++ b/scripts/bugsummary-rebuild.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python2 -S
+#!/usr/bin/python3 -S
 #
 # Copyright 2012 Canonical Ltd.  This software is licensed under the
 # GNU Affero General Public License version 3 (see the file LICENSE).
diff --git a/scripts/cache-country-mirrors.py b/scripts/cache-country-mirrors.py
index 3f09049..f9638b2 100755
--- a/scripts/cache-country-mirrors.py
+++ b/scripts/cache-country-mirrors.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python2 -S
+#!/usr/bin/python3 -S
 #
 # Copyright 2009 Canonical Ltd.  This software is licensed under the
 # GNU Affero General Public License version 3 (see the file LICENSE).
diff --git a/scripts/close-account.py b/scripts/close-account.py
index 05936c0..e6a1bf0 100755
--- a/scripts/close-account.py
+++ b/scripts/close-account.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python2 -S
+#!/usr/bin/python3 -S
 #
 # Copyright 2009-2018 Canonical Ltd.  This software is licensed under the
 # GNU Affero General Public License version 3 (see the file LICENSE).
diff --git a/scripts/convert-person-to-team.py b/scripts/convert-person-to-team.py
index f516339..077586a 100755
--- a/scripts/convert-person-to-team.py
+++ b/scripts/convert-person-to-team.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python2 -S
+#!/usr/bin/python3 -S
 #
 # Copyright 2009-2011 Canonical Ltd.  This software is licensed under the
 # GNU Affero General Public License version 3 (see the file LICENSE).
diff --git a/scripts/copy-distroseries-translations.py b/scripts/copy-distroseries-translations.py
index 62c34f9..a4b683d 100755
--- a/scripts/copy-distroseries-translations.py
+++ b/scripts/copy-distroseries-translations.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python2 -S
+#!/usr/bin/python3 -S
 #
 # Copyright 2009-2015 Canonical Ltd.  This software is licensed under the
 # GNU Affero General Public License version 3 (see the file LICENSE).
diff --git a/scripts/copy-signingkeys.py b/scripts/copy-signingkeys.py
index e5d3f56..9db9f5b 100755
--- a/scripts/copy-signingkeys.py
+++ b/scripts/copy-signingkeys.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python2 -S
+#!/usr/bin/python3 -S
 # Copyright 2021 Canonical Ltd.  This software is licensed under the
 # GNU Affero General Public License version 3 (see the file LICENSE).
 
diff --git a/scripts/create-bot-account.py b/scripts/create-bot-account.py
index f85bbb4..186705f 100755
--- a/scripts/create-bot-account.py
+++ b/scripts/create-bot-account.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python2 -S
+#!/usr/bin/python3 -S
 #
 # Copyright 2017 Canonical Ltd.  This software is licensed under the
 # GNU Affero General Public License version 3 (see the file LICENSE).
diff --git a/scripts/fix-translations-opening.py b/scripts/fix-translations-opening.py
index 7321812..dc59928 100755
--- a/scripts/fix-translations-opening.py
+++ b/scripts/fix-translations-opening.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python2 -S
+#!/usr/bin/python3 -S
 #
 # Copyright 2012-2013 Canonical Ltd.  This software is licensed under the
 # GNU Affero General Public License version 3 (see the file LICENSE).
diff --git a/scripts/ftpmaster-tools/buildd-mass-retry.py b/scripts/ftpmaster-tools/buildd-mass-retry.py
index b7dbaeb..cb31d83 100755
--- a/scripts/ftpmaster-tools/buildd-mass-retry.py
+++ b/scripts/ftpmaster-tools/buildd-mass-retry.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python2 -S
+#!/usr/bin/python3 -S
 #
 # Copyright 2009 Canonical Ltd.  This software is licensed under the
 # GNU Affero General Public License version 3 (see the file LICENSE).
diff --git a/scripts/ftpmaster-tools/obsolete-distroseries.py b/scripts/ftpmaster-tools/obsolete-distroseries.py
index 7040ba6..6b39fdf 100755
--- a/scripts/ftpmaster-tools/obsolete-distroseries.py
+++ b/scripts/ftpmaster-tools/obsolete-distroseries.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python2 -S
+#!/usr/bin/python3 -S
 #
 # Copyright 2009-2012 Canonical Ltd.  This software is licensed under the
 # GNU Affero General Public License version 3 (see the file LICENSE).
diff --git a/scripts/generate-access-token.py b/scripts/generate-access-token.py
index 0ff3723..961d715 100755
--- a/scripts/generate-access-token.py
+++ b/scripts/generate-access-token.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python2 -S
+#!/usr/bin/python3 -S
 #
 # Copyright 2016 Canonical Ltd.  This software is licensed under the
 # GNU Affero General Public License version 3 (see the file LICENSE).
diff --git a/scripts/get-stacked-on-branches.py b/scripts/get-stacked-on-branches.py
index d017a59..4ed7638 100755
--- a/scripts/get-stacked-on-branches.py
+++ b/scripts/get-stacked-on-branches.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python2 -S
+#!/usr/bin/python3 -S
 #
 # Copyright 2009-2012 Canonical Ltd.  This software is licensed under the
 # GNU Affero General Public License version 3 (see the file LICENSE).
diff --git a/scripts/gina.py b/scripts/gina.py
index 5f36be4..c2b238d 100755
--- a/scripts/gina.py
+++ b/scripts/gina.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python2 -S
+#!/usr/bin/python3 -S
 #
 # Copyright 2009-2012 Canonical Ltd.  This software is licensed under the
 # GNU Affero General Public License version 3 (see the file LICENSE).
diff --git a/scripts/import-debian-bugs.py b/scripts/import-debian-bugs.py
index 209f620..aca974d 100755
--- a/scripts/import-debian-bugs.py
+++ b/scripts/import-debian-bugs.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python2 -S
+#!/usr/bin/python3 -S
 #
 # Copyright 2009 Canonical Ltd.  This software is licensed under the
 # GNU Affero General Public License version 3 (see the file LICENSE).
diff --git a/scripts/librarian-report.py b/scripts/librarian-report.py
index 6bb0381..8573c3d 100755
--- a/scripts/librarian-report.py
+++ b/scripts/librarian-report.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python2 -S
+#!/usr/bin/python3 -S
 #
 # Copyright 2009 Canonical Ltd.  This software is licensed under the
 # GNU Affero General Public License version 3 (see the file LICENSE).
diff --git a/scripts/list-team-members b/scripts/list-team-members
index b9f0c52..6813c8d 100755
--- a/scripts/list-team-members
+++ b/scripts/list-team-members
@@ -1,4 +1,4 @@
-#!/usr/bin/python2 -S
+#!/usr/bin/python3 -S
 #
 # Copyright 2009 Canonical Ltd.  This software is licensed under the
 # GNU Affero General Public License version 3 (see the file LICENSE).
diff --git a/scripts/memcached-stats.py b/scripts/memcached-stats.py
index 837a3cf..b7f5702 100755
--- a/scripts/memcached-stats.py
+++ b/scripts/memcached-stats.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python2 -S
+#!/usr/bin/python3 -S
 # Copyright 2010 Canonical Ltd.  This software is licensed under the
 # GNU Affero General Public License version 3 (see the file LICENSE).
 
diff --git a/scripts/migrate-librarian-content-md5.py b/scripts/migrate-librarian-content-md5.py
index 72857e0..0d71ab2 100755
--- a/scripts/migrate-librarian-content-md5.py
+++ b/scripts/migrate-librarian-content-md5.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python2 -S
+#!/usr/bin/python3 -S
 #
 # Copyright 2009-2018 Canonical Ltd.  This software is licensed under the
 # GNU Affero General Public License version 3 (see the file LICENSE).
diff --git a/scripts/mirror-branch.py b/scripts/mirror-branch.py
index 7fd4861..2ec56bb 100755
--- a/scripts/mirror-branch.py
+++ b/scripts/mirror-branch.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python2 -S
+#!/usr/bin/python3 -S
 #
 # Copyright 2009 Canonical Ltd.  This software is licensed under the
 # GNU Affero General Public License version 3 (see the file LICENSE).
diff --git a/scripts/mlist-import.py b/scripts/mlist-import.py
index 7494762..7474749 100755
--- a/scripts/mlist-import.py
+++ b/scripts/mlist-import.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python2 -S
+#!/usr/bin/python3 -S
 #
 # Copyright 2009-2011 Canonical Ltd.  This software is licensed under the
 # GNU Affero General Public License version 3 (see the file LICENSE).
diff --git a/scripts/modified-branches.py b/scripts/modified-branches.py
index 81d2c30..71df108 100755
--- a/scripts/modified-branches.py
+++ b/scripts/modified-branches.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python2 -S
+#!/usr/bin/python3 -S
 #
 # Copyright 2009 Canonical Ltd.  This software is licensed under the
 # GNU Affero General Public License version 3 (see the file LICENSE).
diff --git a/scripts/populate-archive.py b/scripts/populate-archive.py
index a5cb686..1b72e27 100755
--- a/scripts/populate-archive.py
+++ b/scripts/populate-archive.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python2 -S
+#!/usr/bin/python3 -S
 #
 # Copyright 2009 Canonical Ltd.  This software is licensed under the
 # GNU Affero General Public License version 3 (see the file LICENSE).
diff --git a/scripts/populate-distroseriesdiff.py b/scripts/populate-distroseriesdiff.py
index 8fc6a08..31894c6 100755
--- a/scripts/populate-distroseriesdiff.py
+++ b/scripts/populate-distroseriesdiff.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python2 -S
+#!/usr/bin/python3 -S
 #
 # Copyright 2011 Canonical Ltd.  This software is licensed under the
 # GNU Affero General Public License version 3 (see the file LICENSE).
diff --git a/scripts/ppa-report.py b/scripts/ppa-report.py
index 6c494c5..8ccd14e 100755
--- a/scripts/ppa-report.py
+++ b/scripts/ppa-report.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python2 -S
+#!/usr/bin/python3 -S
 #
 # Copyright 2009 Canonical Ltd.  This software is licensed under the
 # GNU Affero General Public License version 3 (see the file LICENSE).
diff --git a/scripts/process-accepted.py b/scripts/process-accepted.py
index 453a7c2..1c8dda4 100755
--- a/scripts/process-accepted.py
+++ b/scripts/process-accepted.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python2 -S
+#!/usr/bin/python3 -S
 #
 # Copyright 2009-2011 Canonical Ltd.  This software is licensed under the
 # GNU Affero General Public License version 3 (see the file LICENSE).
diff --git a/scripts/process-death-row.py b/scripts/process-death-row.py
index 98b9fd0..986fd04 100755
--- a/scripts/process-death-row.py
+++ b/scripts/process-death-row.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python2 -S
+#!/usr/bin/python3 -S
 #
 # Copyright 2009-2011 Canonical Ltd.  This software is licensed under the
 # GNU Affero General Public License version 3 (see the file LICENSE).
diff --git a/scripts/process-one-mail.py b/scripts/process-one-mail.py
index 4565e5c..0fa7484 100755
--- a/scripts/process-one-mail.py
+++ b/scripts/process-one-mail.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python2 -S
+#!/usr/bin/python3 -S
 #
 # Copyright 2011 Canonical Ltd.  This software is licensed under the
 # GNU Affero General Public License version 3 (see the file LICENSE).
diff --git a/scripts/process-upload.py b/scripts/process-upload.py
index 8a18f7e..361a4b1 100755
--- a/scripts/process-upload.py
+++ b/scripts/process-upload.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python2 -S
+#!/usr/bin/python3 -S
 #
 # Copyright 2009-2011 Canonical Ltd.  This software is licensed under the
 # GNU Affero General Public License version 3 (see the file LICENSE).
diff --git a/scripts/publish-distro.py b/scripts/publish-distro.py
index 1d9b1c4..4d13062 100755
--- a/scripts/publish-distro.py
+++ b/scripts/publish-distro.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python2 -S
+#!/usr/bin/python3 -S
 #
 # Copyright 2009-2011 Canonical Ltd.  This software is licensed under the
 # GNU Affero General Public License version 3 (see the file LICENSE).
diff --git a/scripts/rosetta/fix_translation_credits.py b/scripts/rosetta/fix_translation_credits.py
index bcc396d..dcd4227 100755
--- a/scripts/rosetta/fix_translation_credits.py
+++ b/scripts/rosetta/fix_translation_credits.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python2 -S
+#!/usr/bin/python3 -S
 #
 # Copyright 2009 Canonical Ltd.  This software is licensed under the
 # GNU Affero General Public License version 3 (see the file LICENSE).
diff --git a/scripts/rosetta/gettext_check_messages.py b/scripts/rosetta/gettext_check_messages.py
index abcd1a2..e9f2697 100755
--- a/scripts/rosetta/gettext_check_messages.py
+++ b/scripts/rosetta/gettext_check_messages.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python2 -S
+#!/usr/bin/python3 -S
 #
 # Copyright 2009 Canonical Ltd.  This software is licensed under the
 # GNU Affero General Public License version 3 (see the file LICENSE).
diff --git a/scripts/rosetta/merge-existing-packagings.py b/scripts/rosetta/merge-existing-packagings.py
index 5840aa6..9c0178b 100755
--- a/scripts/rosetta/merge-existing-packagings.py
+++ b/scripts/rosetta/merge-existing-packagings.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python2 -S
+#!/usr/bin/python3 -S
 #
 # Copyright 2011 Canonical Ltd.  This software is licensed under the
 # GNU Affero General Public License version 3 (see the file LICENSE).
diff --git a/scripts/rosetta/message-sharing-merge.py b/scripts/rosetta/message-sharing-merge.py
index 4d79ec2..c4804b6 100755
--- a/scripts/rosetta/message-sharing-merge.py
+++ b/scripts/rosetta/message-sharing-merge.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python2 -S
+#!/usr/bin/python3 -S
 #
 # Copyright 2009 Canonical Ltd.  This software is licensed under the
 # GNU Affero General Public License version 3 (see the file LICENSE).
diff --git a/scripts/rosetta/migrate_current_flag.py b/scripts/rosetta/migrate_current_flag.py
index aaad20a..a1eddcc 100755
--- a/scripts/rosetta/migrate_current_flag.py
+++ b/scripts/rosetta/migrate_current_flag.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python2 -S
+#!/usr/bin/python3 -S
 #
 # Copyright 2010 Canonical Ltd.  This software is licensed under the
 # GNU Affero General Public License version 3 (see the file LICENSE).
diff --git a/scripts/rosetta/pottery-generate-intltool.py b/scripts/rosetta/pottery-generate-intltool.py
index de62cbc..2bdf9d5 100755
--- a/scripts/rosetta/pottery-generate-intltool.py
+++ b/scripts/rosetta/pottery-generate-intltool.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python2 -S
+#!/usr/bin/python3 -S
 #
 # Copyright 2009-2020 Canonical Ltd.  This software is licensed under the
 # GNU Affero General Public License version 3 (see the file LICENSE).
diff --git a/scripts/rosetta/remove-translations-by.py b/scripts/rosetta/remove-translations-by.py
index a01aefe..638b168 100755
--- a/scripts/rosetta/remove-translations-by.py
+++ b/scripts/rosetta/remove-translations-by.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python2 -S
+#!/usr/bin/python3 -S
 #
 # Copyright 2009 Canonical Ltd.  This software is licensed under the
 # GNU Affero General Public License version 3 (see the file LICENSE).
diff --git a/scripts/rosetta/reupload-translations.py b/scripts/rosetta/reupload-translations.py
index 1187f7b..a98f08c 100755
--- a/scripts/rosetta/reupload-translations.py
+++ b/scripts/rosetta/reupload-translations.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python2 -S
+#!/usr/bin/python3 -S
 #
 # Copyright 2009 Canonical Ltd.  This software is licensed under the
 # GNU Affero General Public License version 3 (see the file LICENSE).
diff --git a/scripts/rosetta/upload-translations.py b/scripts/rosetta/upload-translations.py
index ede5b1f..f9b9613 100755
--- a/scripts/rosetta/upload-translations.py
+++ b/scripts/rosetta/upload-translations.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python2 -S
+#!/usr/bin/python3 -S
 #
 # Copyright 2011 Canonical Ltd.  This software is licensed under the
 # GNU Affero General Public License version 3 (see the file LICENSE).
diff --git a/scripts/rosetta/validate-translations-file.py b/scripts/rosetta/validate-translations-file.py
index e1edf9f..1acde81 100755
--- a/scripts/rosetta/validate-translations-file.py
+++ b/scripts/rosetta/validate-translations-file.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python2 -S
+#!/usr/bin/python3 -S
 # Copyright 2010 Canonical Ltd.  This software is licensed under the
 # GNU Affero General Public License version 3 (see the file LICENSE).
 
diff --git a/scripts/script-monitor-nagios.py b/scripts/script-monitor-nagios.py
index 2a97dee..046ac59 100755
--- a/scripts/script-monitor-nagios.py
+++ b/scripts/script-monitor-nagios.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python2 -S
+#!/usr/bin/python3 -S
 #
 # Copyright 2009-2011 Canonical Ltd.  This software is licensed under the
 # GNU Affero General Public License version 3 (see the file LICENSE).
diff --git a/scripts/script-monitor.py b/scripts/script-monitor.py
index f6cb148..9671e7e 100755
--- a/scripts/script-monitor.py
+++ b/scripts/script-monitor.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python2 -S
+#!/usr/bin/python3 -S
 #
 # Copyright 2009-2011 Canonical Ltd.  This software is licensed under the
 # GNU Affero General Public License version 3 (see the file LICENSE).
diff --git a/scripts/start-loggerhead.py b/scripts/start-loggerhead.py
index c5746b7..4e37123 100755
--- a/scripts/start-loggerhead.py
+++ b/scripts/start-loggerhead.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python2 -S
+#!/usr/bin/python3 -S
 #
 # Copyright 2009-2018 Canonical Ltd.  This software is licensed under the
 # GNU Affero General Public License version 3 (see the file LICENSE).
diff --git a/scripts/stop-loggerhead.py b/scripts/stop-loggerhead.py
index 32899c2..a269f03 100755
--- a/scripts/stop-loggerhead.py
+++ b/scripts/stop-loggerhead.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python2 -S
+#!/usr/bin/python3 -S
 #
 # Copyright 2009-2018 Canonical Ltd.  This software is licensed under the
 # GNU Affero General Public License version 3 (see the file LICENSE).
diff --git a/scripts/suspend-bot-account.py b/scripts/suspend-bot-account.py
index cc48750..f246ed6 100755
--- a/scripts/suspend-bot-account.py
+++ b/scripts/suspend-bot-account.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python2 -S
+#!/usr/bin/python3 -S
 #
 # Copyright 2018 Canonical Ltd.  This software is licensed under the
 # GNU Affero General Public License version 3 (see the file LICENSE).
diff --git a/scripts/sync-branches.py b/scripts/sync-branches.py
index a010599..0ce3481 100755
--- a/scripts/sync-branches.py
+++ b/scripts/sync-branches.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python2 -S
+#!/usr/bin/python3 -S
 # Copyright 2021 Canonical Ltd.  All rights reserved.
 
 """Sync branches from production to a staging environment."""
diff --git a/scripts/sync-signingkeys.py b/scripts/sync-signingkeys.py
index 0020d76..7eeeab0 100755
--- a/scripts/sync-signingkeys.py
+++ b/scripts/sync-signingkeys.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python2 -S
+#!/usr/bin/python3 -S
 # Copyright 2020 Canonical Ltd.  This software is licensed under the
 # GNU Affero General Public License version 3 (see the file LICENSE).
 
diff --git a/scripts/update-stacked-on.py b/scripts/update-stacked-on.py
index 85d4df3..7083884 100755
--- a/scripts/update-stacked-on.py
+++ b/scripts/update-stacked-on.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python2 -S
+#!/usr/bin/python3 -S
 #
 # Copyright 2009 Canonical Ltd.  This software is licensed under the
 # GNU Affero General Public License version 3 (see the file LICENSE).
diff --git a/scripts/upgrade_all_branches.py b/scripts/upgrade_all_branches.py
index 9a846b3..74236bf 100755
--- a/scripts/upgrade_all_branches.py
+++ b/scripts/upgrade_all_branches.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python2 -S
+#!/usr/bin/python3 -S
 
 __metaclass__ = type
 
diff --git a/scripts/upload2librarian.py b/scripts/upload2librarian.py
index 2b8188c..f211095 100755
--- a/scripts/upload2librarian.py
+++ b/scripts/upload2librarian.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python2 -S
+#!/usr/bin/python3 -S
 #
 # Copyright 2009 Canonical Ltd.  This software is licensed under the
 # GNU Affero General Public License version 3 (see the file LICENSE).
diff --git a/scripts/wsgi-archive-auth.py b/scripts/wsgi-archive-auth.py
index 41791a5..3b7e1a7 100755
--- a/scripts/wsgi-archive-auth.py
+++ b/scripts/wsgi-archive-auth.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python2
+#!/usr/bin/python3
 #
 # Copyright 2017-2021 Canonical Ltd.  This software is licensed under the
 # GNU Affero General Public License version 3 (see the file LICENSE).
diff --git a/setup.py b/setup.py
index 874a893..ef170ea 100644
--- a/setup.py
+++ b/setup.py
@@ -127,7 +127,7 @@ class lp_develop(develop):
                 print(os.environ["LPCONFIG"], file=instance_name_file)
 
             # Write out the build-time Python major/minor version so that
-            # scripts run with /usr/bin/python2 know whether they need to
+            # scripts run with /usr/bin/python3 know whether they need to
             # re-exec.
             python_version_path = os.path.join(env_top, "python_version")
             with open(python_version_path, "w") as python_version_file:
diff --git a/test_on_merge.py b/test_on_merge.py
index 59fa01b..1899935 100755
--- a/test_on_merge.py
+++ b/test_on_merge.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python2 -S
+#!/usr/bin/python3 -S
 #
 # Copyright 2009, 2010 Canonical Ltd.  This software is licensed under the
 # GNU Affero General Public License version 3 (see the file LICENSE).
diff --git a/utilities/audit-security-settings.py b/utilities/audit-security-settings.py
index 8842249..a157c60 100755
--- a/utilities/audit-security-settings.py
+++ b/utilities/audit-security-settings.py
@@ -1,4 +1,4 @@
-#! /usr/bin/python2 -S
+#! /usr/bin/python3 -S
 
 # Copyright 2011 Canonical Ltd.  This software is licensed under the
 # GNU Affero General Public License version 3 (see the file LICENSE).
diff --git a/utilities/create-lp-wadl-and-apidoc.py b/utilities/create-lp-wadl-and-apidoc.py
index c5b3607..742dab4 100755
--- a/utilities/create-lp-wadl-and-apidoc.py
+++ b/utilities/create-lp-wadl-and-apidoc.py
@@ -1,4 +1,4 @@
-#! /usr/bin/python2 -S
+#! /usr/bin/python3 -S
 #
 # Copyright 2010-2020 Canonical Ltd.  This software is licensed under the
 # GNU Affero General Public License version 3 (see the file LICENSE).
diff --git a/utilities/format-imports b/utilities/format-imports
index 4af3ca1..d5fe301 100755
--- a/utilities/format-imports
+++ b/utilities/format-imports
@@ -1,4 +1,4 @@
-#!/usr/bin/python2
+#!/usr/bin/python3
 #
 # Copyright 2010-2021 Canonical Ltd.  This software is licensed under the
 # GNU Affero General Public License version 3 (see the file LICENSE).
diff --git a/utilities/generate-external-bug-status-docs b/utilities/generate-external-bug-status-docs
index 54d8cf9..63a98b6 100755
--- a/utilities/generate-external-bug-status-docs
+++ b/utilities/generate-external-bug-status-docs
@@ -1,4 +1,4 @@
-#!/usr/bin/python2 -S
+#!/usr/bin/python3 -S
 #
 # Copyright 2009-2018 Canonical Ltd.  This software is licensed under the
 # GNU Affero General Public License version 3 (see the file LICENSE).
diff --git a/utilities/get-branch-info b/utilities/get-branch-info
index 0442a8d..32f5909 100755
--- a/utilities/get-branch-info
+++ b/utilities/get-branch-info
@@ -1,4 +1,4 @@
-#!/usr/bin/python2 -S
+#!/usr/bin/python3 -S
 #
 # Copyright 2009 Canonical Ltd.  This software is licensed under the
 # GNU Affero General Public License version 3 (see the file LICENSE).
diff --git a/utilities/link-external-sourcecode b/utilities/link-external-sourcecode
index cf74283..400ff4d 100755
--- a/utilities/link-external-sourcecode
+++ b/utilities/link-external-sourcecode
@@ -1,4 +1,4 @@
-#!/usr/bin/python2
+#!/usr/bin/python3
 #
 # Copyright 2009-2017 Canonical Ltd. This software is licensed under the GNU
 # Affero General Public License version 3 (see the file LICENSE).
diff --git a/utilities/link-system-packages.py b/utilities/link-system-packages.py
index 56e9b95..9a75fcc 100755
--- a/utilities/link-system-packages.py
+++ b/utilities/link-system-packages.py
@@ -1,4 +1,4 @@
-#! /usr/bin/python2
+#! /usr/bin/python3
 
 # Copyright 2020 Canonical Ltd.  This software is licensed under the
 # GNU Affero General Public License version 3 (see the file LICENSE).
diff --git a/utilities/list-pages b/utilities/list-pages
index 35c4a5c..02bfe4e 100755
--- a/utilities/list-pages
+++ b/utilities/list-pages
@@ -1,4 +1,4 @@
-#!/usr/bin/python2 -S
+#!/usr/bin/python3 -S
 #
 # Copyright 2011 Canonical Ltd.  This software is licensed under the
 # GNU Affero General Public License version 3 (see the file LICENSE).
diff --git a/utilities/lsconf.py b/utilities/lsconf.py
index f4301bf..639bc50 100755
--- a/utilities/lsconf.py
+++ b/utilities/lsconf.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python2 -S
+#!/usr/bin/python3 -S
 #
 # Copyright 2009 Canonical Ltd.  This software is licensed under the
 # GNU Affero General Public License version 3 (see the file LICENSE).
diff --git a/utilities/make-dev-certificate b/utilities/make-dev-certificate
index 9576697..1952532 100755
--- a/utilities/make-dev-certificate
+++ b/utilities/make-dev-certificate
@@ -1,4 +1,4 @@
-#! /usr/bin/python2
+#! /usr/bin/python3
 #
 # Copyright 2016 Canonical Ltd.  This software is licensed under the
 # GNU Affero General Public License version 3 (see the file LICENSE).
diff --git a/utilities/make-dummy-hosted-branches b/utilities/make-dummy-hosted-branches
index eb930db..1cd3eea 100755
--- a/utilities/make-dummy-hosted-branches
+++ b/utilities/make-dummy-hosted-branches
@@ -1,4 +1,4 @@
-#!/usr/bin/python2 -S
+#!/usr/bin/python3 -S
 #
 # Copyright 2009 Canonical Ltd.  This software is licensed under the
 # GNU Affero General Public License version 3 (see the file LICENSE).
diff --git a/utilities/make-lp-user b/utilities/make-lp-user
index a13f631..9c972cf 100755
--- a/utilities/make-lp-user
+++ b/utilities/make-lp-user
@@ -1,4 +1,4 @@
-#!/usr/bin/python2 -S
+#!/usr/bin/python3 -S
 #
 # Copyright 2009-2010 Canonical Ltd.  This software is licensed under the
 # GNU Affero General Public License version 3 (see the file LICENSE).
diff --git a/utilities/make-requirements.py b/utilities/make-requirements.py
index 92fce84..582c0f4 100755
--- a/utilities/make-requirements.py
+++ b/utilities/make-requirements.py
@@ -1,4 +1,4 @@
-#! /usr/bin/python2
+#! /usr/bin/python3
 
 # Copyright 2020 Canonical Ltd.  This software is licensed under the
 # GNU Affero General Public License version 3 (see the file LICENSE).
diff --git a/utilities/paste b/utilities/paste
index f56a08c..3731db7 100755
--- a/utilities/paste
+++ b/utilities/paste
@@ -1,4 +1,4 @@
-#!/usr/bin/python2 -S
+#!/usr/bin/python3 -S
 #
 # Copyright 2009-2012 Canonical Ltd.  This software is licensed under the
 # GNU Affero General Public License version 3 (see the file LICENSE).
diff --git a/utilities/pgbackup.py b/utilities/pgbackup.py
index 3bf7b35..b329e16 100755
--- a/utilities/pgbackup.py
+++ b/utilities/pgbackup.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python2
+#!/usr/bin/python3
 #
 # Copyright 2009 Canonical Ltd.  This software is licensed under the
 # GNU Affero General Public License version 3 (see the file LICENSE).
diff --git a/utilities/pgcreate.py b/utilities/pgcreate.py
index 61f5165..9675da3 100755
--- a/utilities/pgcreate.py
+++ b/utilities/pgcreate.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python2
+#!/usr/bin/python3
 #
 # Copyright 2009 Canonical Ltd.  This software is licensed under the
 # GNU Affero General Public License version 3 (see the file LICENSE).
diff --git a/utilities/pgkillactive.py b/utilities/pgkillactive.py
index 85bd637..dc6f71c 100755
--- a/utilities/pgkillactive.py
+++ b/utilities/pgkillactive.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python2 -S
+#!/usr/bin/python3 -S
 #
 # Copyright 2009 Canonical Ltd.  This software is licensed under the
 # GNU Affero General Public License version 3 (see the file LICENSE).
diff --git a/utilities/pgkillidle.py b/utilities/pgkillidle.py
index c0c81e9..cae0f15 100755
--- a/utilities/pgkillidle.py
+++ b/utilities/pgkillidle.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python2 -S
+#!/usr/bin/python3 -S
 #
 # Copyright 2009 Canonical Ltd.  This software is licensed under the
 # GNU Affero General Public License version 3 (see the file LICENSE).
diff --git a/utilities/pglogwatch.py b/utilities/pglogwatch.py
index 406089a..e926eab 100755
--- a/utilities/pglogwatch.py
+++ b/utilities/pglogwatch.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python2
+#!/usr/bin/python3
 #
 # Copyright 2009 Canonical Ltd.  This software is licensed under the
 # GNU Affero General Public License version 3 (see the file LICENSE).
diff --git a/utilities/pgmassacre.py b/utilities/pgmassacre.py
index b05a3d9..069739c 100755
--- a/utilities/pgmassacre.py
+++ b/utilities/pgmassacre.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python2 -S
+#!/usr/bin/python3 -S
 #
 # Copyright 2009-2011 Canonical Ltd.  This software is licensed under the
 # GNU Affero General Public License version 3 (see the file LICENSE).
diff --git a/utilities/pgstats.py b/utilities/pgstats.py
index 30e1ac3..069c3a2 100755
--- a/utilities/pgstats.py
+++ b/utilities/pgstats.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python2
+#!/usr/bin/python3
 #
 # Copyright 2009 Canonical Ltd.  This software is licensed under the
 # GNU Affero General Public License version 3 (see the file LICENSE).
diff --git a/utilities/rename-module.py b/utilities/rename-module.py
index 6ec836c..e2b20b8 100755
--- a/utilities/rename-module.py
+++ b/utilities/rename-module.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python2
+#!/usr/bin/python3
 #
 # Copyright 2009 Canonical Ltd.  This software is licensed under the
 # GNU Affero General Public License version 3 (see the file LICENSE).
diff --git a/utilities/report-database-stats.py b/utilities/report-database-stats.py
index 9353e86..d7097a7 100755
--- a/utilities/report-database-stats.py
+++ b/utilities/report-database-stats.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python2 -S
+#!/usr/bin/python3 -S
 # Copyright 2010-2011 Canonical Ltd.  This software is licensed under the
 # GNU Affero General Public License version 3 (see the file LICENSE).
 
diff --git a/utilities/run-as b/utilities/run-as
index 27c14b5..0f12339 100755
--- a/utilities/run-as
+++ b/utilities/run-as
@@ -1,4 +1,4 @@
-#! /usr/bin/python2
+#! /usr/bin/python3
 #
 # Copyright 2017 Canonical Ltd.  This software is licensed under the
 # GNU Affero General Public License version 3 (see the file LICENSE).
diff --git a/utilities/shhh.py b/utilities/shhh.py
index 958a6f4..d948a66 100755
--- a/utilities/shhh.py
+++ b/utilities/shhh.py
@@ -1,4 +1,4 @@
-#! /usr/bin/python2 -S
+#! /usr/bin/python3 -S
 #
 # Copyright 2009-2017 Canonical Ltd.  This software is licensed under the
 # GNU Affero General Public License version 3 (see the file LICENSE).
diff --git a/utilities/smoke-test-librarian.py b/utilities/smoke-test-librarian.py
index 0581e00..4b0e269 100755
--- a/utilities/smoke-test-librarian.py
+++ b/utilities/smoke-test-librarian.py
@@ -1,4 +1,4 @@
-#! /usr/bin/python2 -S
+#! /usr/bin/python3 -S
 #
 # Copyright 2010 Canonical Ltd.  This software is licensed under the
 # GNU Affero General Public License version 3 (see the file LICENSE).
diff --git a/utilities/soyuz-sampledata-setup.py b/utilities/soyuz-sampledata-setup.py
index 9edad0e..c8f2f2f 100755
--- a/utilities/soyuz-sampledata-setup.py
+++ b/utilities/soyuz-sampledata-setup.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python2 -S
+#!/usr/bin/python3 -S
 
 # Copyright 2010-2020 Canonical Ltd.  This software is licensed under the
 # GNU Affero General Public License version 3 (see the file LICENSE).
diff --git a/utilities/update-copyright b/utilities/update-copyright
index dcca9db..6f6b19a 100755
--- a/utilities/update-copyright
+++ b/utilities/update-copyright
@@ -1,4 +1,4 @@
-#!/usr/bin/python2
+#!/usr/bin/python3
 #
 # Copyright 2010-2020 Canonical Ltd.  This software is licensed under the
 # GNU Affero General Public License version 3 (see the file LICENSE).
diff --git a/utilities/update-sourcecode b/utilities/update-sourcecode
index a10eb01..754718b 100755
--- a/utilities/update-sourcecode
+++ b/utilities/update-sourcecode
@@ -1,4 +1,4 @@
-#!/usr/bin/python2 -u
+#!/usr/bin/python3 -u
 #
 # Copyright 2009 Canonical Ltd.  This software is licensed under the
 # GNU Affero General Public License version 3 (see the file LICENSE).