diff --git a/pw_build/BUILD.gn b/pw_build/BUILD.gn
index d30bbc9..ab0f9f5 100644
--- a/pw_build/BUILD.gn
+++ b/pw_build/BUILD.gn
@@ -14,6 +14,7 @@
 
 import("//build_overrides/pigweed.gni")
 
+import("$dir_pw_build/python.gni")
 import("$dir_pw_docgen/docs.gni")
 
 # IMPORTANT: The compilation flags in this file must be kept in sync with
@@ -124,6 +125,14 @@
   depth = 1
 }
 
+# Requirements for the pw_python_package lint targets.
+pw_python_requirements("python_lint") {
+  requirements = [
+    "mypy==0.800",
+    "pylint==2.6.0",
+  ]
+}
+
 pw_doc_group("docs") {
   sources = [ "docs.rst" ]
 }
diff --git a/pw_build/python.gni b/pw_build/python.gni
index b94a526..031a7ba 100644
--- a/pw_build/python.gni
+++ b/pw_build/python.gni
@@ -244,7 +244,7 @@
   if (_should_lint || _test_sources != []) {
     # Packages that must be installed to use the package or run its tests.
     _test_install_deps = [ ":$_internal_target.install" ]
-    foreach(dep, _python_test_deps) {
+    foreach(dep, _python_test_deps + [ "$dir_pw_build:python_lint" ]) {
       _test_install_deps += [ "$dep.install" ]
     }
   }
@@ -273,11 +273,7 @@
         inputs = [ invoker.mypy_ini ]
       }
 
-      if (_is_package) {
-        args += [ rebase_path(_setup_dir) ]
-      } else {
-        args += rebase_path(_all_py_files)
-      }
+      args += rebase_path(_all_py_files)
 
       # Use this environment variable to force mypy to colorize output.
       # See https://github.com/python/mypy/issues/7771
diff --git a/pw_hdlc/BUILD.gn b/pw_hdlc/BUILD.gn
index c3f0dad..93d7344 100644
--- a/pw_hdlc/BUILD.gn
+++ b/pw_hdlc/BUILD.gn
@@ -14,6 +14,7 @@
 
 import("//build_overrides/pigweed.gni")
 
+import("$dir_pw_build/python.gni")
 import("$dir_pw_build/target_types.gni")
 import("$dir_pw_docgen/docs.gni")
 import("$dir_pw_unit_test/test.gni")
@@ -118,11 +119,14 @@
   sources = [ "encoder_test.cc" ]
 }
 
-action("generate_decoder_test") {
+pw_python_action("generate_decoder_test") {
   outputs = [ "$target_gen_dir/generated_decoder_test.cc" ]
   script = "py/decode_test.py"
   args = [ "--generate-cc-test" ] + rebase_path(outputs)
-  deps = [ "$dir_pw_build/py" ]
+  python_deps = [
+    "$dir_pw_build/py",
+    "py",
+  ]
 }
 
 pw_test("decoder_test") {
diff --git a/pw_presubmit/py/BUILD.gn b/pw_presubmit/py/BUILD.gn
index 6efb5eb..cfaa150 100644
--- a/pw_presubmit/py/BUILD.gn
+++ b/pw_presubmit/py/BUILD.gn
@@ -36,6 +36,7 @@
     "tools_test.py",
   ]
   python_deps = [
+    "$dir_pw_build:python_lint",
     "$dir_pw_cli/py",
     "$dir_pw_package/py",
   ]
diff --git a/pw_presubmit/py/setup.py b/pw_presubmit/py/setup.py
index 9832e9c..959a1d9 100644
--- a/pw_presubmit/py/setup.py
+++ b/pw_presubmit/py/setup.py
@@ -22,8 +22,6 @@
     author_email='pigweed-developers@googlegroups.com',
     description='Presubmit tools and a presubmit script for Pigweed',
     install_requires=[
-        'mypy==0.790',
-        'pylint==2.6.0',
         'yapf==0.30.0',
         'pw_cli',
         'pw_package',
diff --git a/pw_protobuf_compiler/BUILD.gn b/pw_protobuf_compiler/BUILD.gn
index f34438f..e974422 100644
--- a/pw_protobuf_compiler/BUILD.gn
+++ b/pw_protobuf_compiler/BUILD.gn
@@ -47,5 +47,5 @@
 # PyPI Requirements needed to install Python protobuf packages.
 pw_python_requirements("protobuf_requirements") {
   # mypy-protobuf 1.24 is required to support optional fields in proto3.
-  requirements = [ "mypy-protobuf>=1.24" ]
+  requirements = [ "mypy-protobuf>=2.2" ]
 }
diff --git a/pw_rpc/py/callback_client_test.py b/pw_rpc/py/callback_client_test.py
index 443b820..425fd0b 100755
--- a/pw_rpc/py/callback_client_test.py
+++ b/pw_rpc/py/callback_client_test.py
@@ -93,7 +93,7 @@
             payload = response.SerializeToString()
 
         self._next_packets.append(
-            (packet_pb2.RpcPacket(type=packets.PacketType.RESPONSE,
+            (packet_pb2.RpcPacket(type=packet_pb2.PacketType.RESPONSE,
                                   channel_id=channel_id,
                                   service_id=service_id,
                                   method_id=method_id,
@@ -107,7 +107,7 @@
                             status: Status = Status.OK,
                             process_status=Status.OK):
         self._next_packets.append(
-            (packet_pb2.RpcPacket(type=packets.PacketType.SERVER_STREAM_END,
+            (packet_pb2.RpcPacket(type=packet_pb2.PacketType.SERVER_STREAM_END,
                                   channel_id=channel_id,
                                   service_id=method.service.id,
                                   method_id=method.id,
@@ -215,7 +215,7 @@
             self._last_request = None
             self._service.SomeUnary.reinvoke(callback, magic_number=55)
             self.assertEqual(self._last_request.type,
-                             packets.PacketType.REQUEST)
+                             packet_pb2.PacketType.REQUEST)
 
     def test_invoke_server_streaming(self):
         method = self._service.SomeServerStreaming.method
@@ -277,7 +277,7 @@
         call.cancel()
 
         self.assertEqual(self._last_request.type,
-                         packets.PacketType.CANCEL_SERVER_STREAM)
+                         packet_pb2.PacketType.CANCEL_SERVER_STREAM)
 
         # Ensure the RPC can be called after being cancelled.
         self._enqueue_response(1, stub.method, response=resp)
diff --git a/pw_rpc/py/client_test.py b/pw_rpc/py/client_test.py
index bcf3d06..9a610f4 100755
--- a/pw_rpc/py/client_test.py
+++ b/pw_rpc/py/client_test.py
@@ -16,7 +16,7 @@
 
 import unittest
 
-from pw_rpc_protos.internal.packet_pb2 import RpcPacket
+from pw_rpc_protos.internal.packet_pb2 import PacketType, RpcPacket
 from pw_protobuf_compiler import python_protos
 from pw_status import Status
 
@@ -211,8 +211,7 @@
     def test_process_packet_not_for_client(self):
         self.assertIs(
             self._client.process_packet(
-                RpcPacket(
-                    type=packets.PacketType.REQUEST).SerializeToString()),
+                RpcPacket(type=PacketType.REQUEST).SerializeToString()),
             Status.INVALID_ARGUMENT)
 
     def test_process_packet_unrecognized_channel(self):
@@ -232,7 +231,7 @@
 
         self.assertEqual(
             self._last_packet_sent(),
-            RpcPacket(type=packets.PacketType.CLIENT_ERROR,
+            RpcPacket(type=PacketType.CLIENT_ERROR,
                       channel_id=1,
                       service_id=456,
                       method_id=789,
@@ -249,7 +248,7 @@
 
         self.assertEqual(
             self._last_packet_sent(),
-            RpcPacket(type=packets.PacketType.CLIENT_ERROR,
+            RpcPacket(type=PacketType.CLIENT_ERROR,
                       channel_id=1,
                       service_id=service.id,
                       method_id=789,
@@ -267,7 +266,7 @@
 
         self.assertEqual(
             self._last_packet_sent(),
-            RpcPacket(type=packets.PacketType.CLIENT_ERROR,
+            RpcPacket(type=PacketType.CLIENT_ERROR,
                       channel_id=1,
                       service_id=service.id,
                       method_id=method.id,
diff --git a/pw_rpc/py/packets_test.py b/pw_rpc/py/packets_test.py
index ea49f3b..b10b831 100755
--- a/pw_rpc/py/packets_test.py
+++ b/pw_rpc/py/packets_test.py
@@ -17,11 +17,11 @@
 import unittest
 
 from pw_status import Status
-from pw_rpc_protos.internal.packet_pb2 import RpcPacket
+from pw_rpc_protos.internal.packet_pb2 import PacketType, RpcPacket
 
 from pw_rpc import packets
 
-_TEST_REQUEST = RpcPacket(type=packets.PacketType.REQUEST,
+_TEST_REQUEST = RpcPacket(type=PacketType.REQUEST,
                           channel_id=1,
                           service_id=2,
                           method_id=3,
@@ -38,7 +38,7 @@
         self.assertEqual(_TEST_REQUEST, packet)
 
     def test_encode_response(self):
-        response = RpcPacket(type=packets.PacketType.RESPONSE,
+        response = RpcPacket(type=PacketType.RESPONSE,
                              channel_id=1,
                              service_id=2,
                              method_id=3,
@@ -58,7 +58,7 @@
 
         self.assertEqual(
             packet,
-            RpcPacket(type=packets.PacketType.CANCEL_SERVER_STREAM,
+            RpcPacket(type=PacketType.CANCEL_SERVER_STREAM,
                       channel_id=9,
                       service_id=8,
                       method_id=7))
@@ -71,7 +71,7 @@
 
         self.assertEqual(
             packet,
-            RpcPacket(type=packets.PacketType.CLIENT_ERROR,
+            RpcPacket(type=PacketType.CLIENT_ERROR,
                       channel_id=1,
                       service_id=2,
                       method_id=3,
@@ -86,7 +86,7 @@
 
         self.assertFalse(
             packets.for_server(
-                RpcPacket(type=packets.PacketType.RESPONSE,
+                RpcPacket(type=PacketType.RESPONSE,
                           channel_id=1,
                           service_id=2,
                           method_id=3,
diff --git a/pw_rpc/py/pw_rpc/client.py b/pw_rpc/py/pw_rpc/client.py
index 6c47ceb..2fd7ee1 100644
--- a/pw_rpc/py/pw_rpc/client.py
+++ b/pw_rpc/py/pw_rpc/client.py
@@ -19,11 +19,11 @@
 from typing import Collection, Dict, Iterable, Iterator, List, NamedTuple
 from typing import Optional
 
-from pw_rpc_protos.internal.packet_pb2 import RpcPacket
+from google.protobuf.message import DecodeError
+from pw_rpc_protos.internal.packet_pb2 import PacketType, RpcPacket
 from pw_status import Status
 
 from pw_rpc import descriptors, packets
-from pw_rpc.packets import PacketType
 from pw_rpc.descriptors import Channel, Service, Method
 
 _LOG = logging.getLogger(__name__)
@@ -207,7 +207,7 @@
     if packet.type == PacketType.RESPONSE:
         try:
             return packets.decode_payload(packet, rpc.method.response_type)
-        except packets.DecodeError as err:
+        except DecodeError as err:
             _LOG.warning('Failed to decode %s response for %s: %s',
                          rpc.method.response_type.DESCRIPTOR.full_name,
                          rpc.method.full_name, err)
@@ -340,7 +340,7 @@
         """
         try:
             packet = packets.decode(pw_rpc_raw_packet_data)
-        except packets.DecodeError as err:
+        except DecodeError as err:
             _LOG.warning('Failed to decode packet: %s', err)
             _LOG.debug('Raw packet: %r', pw_rpc_raw_packet_data)
             return Status.DATA_LOSS
diff --git a/pw_rpc/py/pw_rpc/packets.py b/pw_rpc/py/pw_rpc/packets.py
index 3ca6fbd..dd0917c 100644
--- a/pw_rpc/py/pw_rpc/packets.py
+++ b/pw_rpc/py/pw_rpc/packets.py
@@ -17,11 +17,6 @@
 from pw_rpc_protos.internal import packet_pb2
 from pw_status import Status
 
-DecodeError = message.DecodeError
-Message = message.Message
-
-PacketType = packet_pb2.PacketType
-
 
 def decode(data: bytes):
     packet = packet_pb2.RpcPacket()
diff --git a/pw_rpc/py/setup.py b/pw_rpc/py/setup.py
index 230b7ad..12a943e 100644
--- a/pw_rpc/py/setup.py
+++ b/pw_rpc/py/setup.py
@@ -33,6 +33,7 @@
     install_requires=[
         'protobuf',
         'pw_protobuf_compiler',
+        'pw_rpc_protos',
         'pw_status',
     ],
     tests_require=['pw_build'],
