diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS
index cf6c962..acdfc49 100644
--- a/.github/CODEOWNERS
+++ b/.github/CODEOWNERS
@@ -7,7 +7,6 @@
 /python/ @brandjon @lberki
 # But not everything under python/ is the core Python rules.
 /python/pip.bzl @thundergolfer @andyscott
-/python/whl.bzl @thundergolfer @andyscott
 /python/requirements.txt @thundergolfer @andyscott
 
 # Directory containing the Gazelle extension and Go code.
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index da4b625..41dbd96 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -62,7 +62,7 @@
 
 Practically, this means that a Bazel team member should approve any PR
 concerning the core Python logic. This includes everything under the `python/`
-directory except for `pip.bzl`, `whl.bzl`, and `requirements.txt`.
+directory except for `pip.bzl` and `requirements.txt`.
 
 Issues should be triaged as follows:
 
diff --git a/docs/BUILD b/docs/BUILD
index 4264bd3..fe883d1 100644
--- a/docs/BUILD
+++ b/docs/BUILD
@@ -25,7 +25,6 @@
     "packaging": "//docs:packaging-docs",
     "pip": "//docs:pip-docs",
     "python": "//docs:core-docs",
-    "whl": "//docs:whl-docs",
 }
 
 # We define these bzl_library targets here rather than in the //python package
@@ -86,10 +85,6 @@
     deps = [":defs"],
 )
 
-# TODO: Consider merging documentation pages for whl and pip. This would
-# require re-exporting their symbols from a common .bzl; see
-# https://github.com/bazelbuild/skydoc/issues/208.
-
 stardoc(
     name = "pip-docs",
     out = "pip.md_",
@@ -102,12 +97,6 @@
 )
 
 stardoc(
-    name = "whl-docs",
-    out = "whl.md_",
-    input = "//python:whl.bzl",
-)
-
-stardoc(
     name = "packaging-docs",
     out = "packaging.md_",
     input = "//python:packaging.bzl",
diff --git a/docs/whl.md b/docs/whl.md
deleted file mode 100755
index bf8c73f..0000000
--- a/docs/whl.md
+++ /dev/null
@@ -1,40 +0,0 @@
-<!-- Generated with Stardoc: http://skydoc.bazel.build -->
-
-<a name="#whl_library"></a>
-
-## whl_library
-
-<pre>
-whl_library(<a href="#whl_library-name">name</a>, <a href="#whl_library-extras">extras</a>, <a href="#whl_library-python_interpreter">python_interpreter</a>, <a href="#whl_library-requirements">requirements</a>, <a href="#whl_library-whl">whl</a>)
-</pre>
-
-A rule for importing `.whl` dependencies into Bazel.
-
-<b>This rule is currently used to implement `pip_import`. It is not intended to
-work standalone, and the interface may change.</b> See `pip_import` for proper
-usage.
-
-This rule imports a `.whl` file as a `py_library`:
-```python
-whl_library(
-    name = "foo",
-    whl = ":my-whl-file",
-    requirements = "name of pip_import rule",
-)
-```
-
-This rule defines `@foo//:pkg` as a `py_library` target.
-
-
-**ATTRIBUTES**
-
-
-| Name  | Description | Type | Mandatory | Default |
-| :-------------: | :-------------: | :-------------: | :-------------: | :-------------: |
-| name |  A unique name for this repository.   | <a href="https://bazel.build/docs/build-ref.html#name">Name</a> | required |  |
-| extras |  A subset of the "extras" available from this <code>.whl</code> for which <code>requirements</code> has the dependencies.   | List of strings | optional | [] |
-| python_interpreter |  The command to run the Python interpreter used when unpacking the wheel.   | String | optional | "python" |
-| requirements |  The name of the <code>pip_import</code> repository rule from which to load this <code>.whl</code>'s dependencies.   | String | optional | "" |
-| whl |  The path to the <code>.whl</code> file. The name is expected to follow [this convention](https://www.python.org/dev/peps/pep-0427/#file-name-convention)).   | <a href="https://bazel.build/docs/build-ref.html#labels">Label</a> | required |  |
-
-
diff --git a/python/BUILD b/python/BUILD
index 9470ad6..96df383 100644
--- a/python/BUILD
+++ b/python/BUILD
@@ -46,7 +46,6 @@
         "defs.bzl",
         "packaging.bzl",
         "pip.bzl",
-        "whl.bzl",
         "//python/private:bzl",
     ],
     visibility = ["//:__pkg__"],
@@ -135,5 +134,4 @@
 exports_files([
     "packaging.bzl",
     "pip.bzl",
-    "whl.bzl",
 ])
diff --git a/python/whl.bzl b/python/whl.bzl
deleted file mode 100644
index 336a782..0000000
--- a/python/whl.bzl
+++ /dev/null
@@ -1,83 +0,0 @@
-# Copyright 2017 Google Inc. All rights reserved.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-"""Import .whl files into Bazel."""
-
-def _whl_impl(repository_ctx):
-    """Core implementation of whl_library."""
-
-    args = [
-        repository_ctx.attr.python_interpreter,
-        repository_ctx.path(repository_ctx.attr._script),
-        "--whl",
-        repository_ctx.path(repository_ctx.attr.whl),
-        "--requirements",
-        repository_ctx.attr.requirements,
-    ]
-
-    if repository_ctx.attr.extras:
-        args += [
-            "--extras=%s" % extra
-            for extra in repository_ctx.attr.extras
-        ]
-
-    result = repository_ctx.execute(args)
-    if result.return_code:
-        fail("whl_library failed: %s (%s)" % (result.stdout, result.stderr))
-
-whl_library = repository_rule(
-    attrs = {
-        "extras": attr.string_list(doc = """
-A subset of the "extras" available from this `.whl` for which
-`requirements` has the dependencies.
-"""),
-        "python_interpreter": attr.string(default = "python", doc = """
-The command to run the Python interpreter used when unpacking the wheel.
-"""),
-        "requirements": attr.string(doc = """
-The name of the `pip_import` repository rule from which to load this
-`.whl`'s dependencies.
-"""),
-        "whl": attr.label(
-            mandatory = True,
-            allow_single_file = True,
-            doc = """
-The path to the `.whl` file. The name is expected to follow [this
-convention](https://www.python.org/dev/peps/pep-0427/#file-name-convention)).
-""",
-        ),
-        "_script": attr.label(
-            executable = True,
-            default = Label("//tools:whltool.par"),
-            cfg = "host",
-        ),
-    },
-    implementation = _whl_impl,
-    doc = """A rule for importing `.whl` dependencies into Bazel.
-
-<b>This rule is currently used to implement `pip_import`. It is not intended to
-work standalone, and the interface may change.</b> See `pip_import` for proper
-usage.
-
-This rule imports a `.whl` file as a `py_library`:
-```python
-whl_library(
-    name = "foo",
-    whl = ":my-whl-file",
-    requirements = "name of pip_import rule",
-)
-```
-
-This rule defines `@foo//:pkg` as a `py_library` target.
-""",
-)
