diff --git a/README.rst b/README.rst
index e7d7a33..bf5d542 100644
--- a/README.rst
+++ b/README.rst
@@ -124,6 +124,14 @@ index              parse_version
 download           path_to_url
 __version__        pip_version
 exceptions         PipError
+exceptions         InstallationError
+exceptions         UninstallationError
+exceptions         DistributionNotFound
+exceptions         RequirementsFileParseError
+exceptions         BestVersionAlreadyInstalled
+exceptions         BadCommand
+exceptions         CommandError
+exceptions         PreviousBuildDirError
 operations.prepare RequirementPreparer
 operations.freeze  FrozenRequirement           <`__init__`>
 req.req_set        RequirementSet
diff --git a/docs/quickstart.rst b/docs/quickstart.rst
index d70c0e6..e21b15c 100644
--- a/docs/quickstart.rst
+++ b/docs/quickstart.rst
@@ -127,6 +127,14 @@ index              parse_version
 download           path_to_url
 __version__        pip_version
 exceptions         PipError
+exceptions         InstallationError
+exceptions         UninstallationError
+exceptions         DistributionNotFound
+exceptions         RequirementsFileParseError
+exceptions         BestVersionAlreadyInstalled
+exceptions         BadCommand
+exceptions         CommandError
+exceptions         PreviousBuildDirError
 operations.prepare RequirementPreparer
 operations.freeze  FrozenRequirement           <`__init__`>
 req.req_set        RequirementSet
diff --git a/news/19.feature.rst b/news/19.feature.rst
new file mode 100644
index 0000000..4eccda6
--- /dev/null
+++ b/news/19.feature.rst
@@ -0,0 +1,9 @@
+Added shims for the following:
+  * ``InstallationError``
+  * ``UninstallationError``
+  * ``DistributionNotFound``
+  * ``RequirementsFileParseError``
+  * ``BestVersionAlreadyInstalled``
+  * ``BadCommand``
+  * ``CommandError``
+  * ``PreviousBuildDirError``
diff --git a/src/pip_shims/shims.py b/src/pip_shims/shims.py
index 656ff7f..7b81a60 100644
--- a/src/pip_shims/shims.py
+++ b/src/pip_shims/shims.py
@@ -32,12 +32,15 @@ class _shims(object):
         return list(self._locations.keys())
 
     def __init__(self):
-        from .utils import _parse, get_package, STRING_TYPES
-        self._parse = _parse
-        self.get_package = get_package
-        self.STRING_TYPES = STRING_TYPES
+        # from .utils import _parse, get_package, STRING_TYPES
+        from . import utils
+        self.utils = utils
+        self._parse = utils._parse
+        self.get_package = utils.get_package
+        self.STRING_TYPES = utils.STRING_TYPES
         self._modules = {
-            "pip": importlib.import_module("pip"),
+            "pip": importlib.import_module(self.BASE_IMPORT_PATH),
+            "pip_shims.utils": utils
         }
         self.pip_version = getattr(self._modules["pip"], "__version__")
         self.parsed_pip_version = self._parse(self.pip_version)
@@ -85,6 +88,14 @@ class _shims(object):
                 ("cmdoptions.index_group", "7.0.0", "18.0")
             ),
             "InstallRequirement": ("req.req_install.InstallRequirement", "7.0.0", "9999"),
+            "InstallationError": ("exceptions.InstallationError", "7.0.0", "9999"),
+            "UninstallationError": ("exceptions.UninstallationError", "7.0.0", "9999"),
+            "DistributionNotFound": ("exceptions.DistributionNotFound", "7.0.0", "9999"),
+            "RequirementsFileParseError": ("exceptions.RequirementsFileParseError", "7.0.0", "9999"),
+            "BestVersionAlreadyInstalled": ("exceptions.BestVersionAlreadyInstalled", "7.0.0", "9999"),
+            "BadCommand": ("exceptions.BadCommand", "7.0.0", "9999"),
+            "CommandError": ("exceptions.CommandError", "7.0.0", "9999"),
+            "PreviousBuildDirError": ("exceptions.PreviousBuildDirError", "7.0.0", "9999"),
             "install_req_from_editable": (
                 ("req.constructors.install_req_from_editable", "18.1", "9999"),
                 ("req.req_install.InstallRequirement.from_editable", "7.0.0", "18.0")

diff --git a/tests/test_instances.py b/tests/test_instances.py
index 3dceafb..0a96f86 100644
--- a/tests/test_instances.py
+++ b/tests/test_instances.py
@@ -38,7 +38,17 @@ from pip_shims import (
     WheelBuilder,
     install_req_from_editable,
     install_req_from_line,
-    FrozenRequirement
+    FrozenRequirement,
+    DistributionNotFound,
+    PipError,
+    InstallationError,
+    UninstallationError,
+    DistributionNotFound,
+    RequirementsFileParseError,
+    BestVersionAlreadyInstalled,
+    BadCommand,
+    CommandError,
+    PreviousBuildDirError,
 )
 import pytest
 import six
@@ -80,7 +90,19 @@ def test_configparser(PipCommand):
 
 @pytest.mark.parametrize(
     "exceptionclass, baseclass",
-    [(DistributionNotFound, Exception), (PipError, Exception)],
+    [
+        (DistributionNotFound, Exception),
+        (PipError, Exception),
+        (InstallationError, Exception),
+        (UninstallationError, Exception),
+        (DistributionNotFound, Exception),
+        (RequirementsFileParseError, Exception),
+        (BestVersionAlreadyInstalled, Exception),
+        (BadCommand, Exception),
+        (CommandError, Exception),
+        (PreviousBuildDirError, Exception),
+    ],
+
 )
 def test_exceptions(exceptionclass, baseclass):
     assert issubclass(exceptionclass, baseclass)

Add more shims for exceptions and errors
@techalchemy commented on [Sat Oct 06 2018](https://github.com/sarugaku/vistir/issues/15)

Include long-supported errors such as `InstallationError`, `UninstallationError`, etc


tests/test_instances.py::test_strip_extras tests/test_instances.py::test_cmdoptions tests/test_instances.py::test_exceptions[DistributionNotFound-Exception0] tests/test_instances.py::test_exceptions[PipError-Exception] tests/test_instances.py::test_exceptions[InstallationError-Exception] tests/test_instances.py::test_exceptions[DistributionNotFound-Exception1] tests/test_instances.py::test_exceptions[RequirementsFileParseError-Exception] tests/test_instances.py::test_exceptions[BestVersionAlreadyInstalled-Exception] tests/test_instances.py::test_exceptions[BadCommand-Exception] tests/test_instances.py::test_exceptions[CommandError-Exception] tests/test_instances.py::test_exceptions[PreviousBuildDirError-Exception] tests/test_instances.py::test_favorite_hash tests/test_instances.py::test_format_control tests/test_instances.py::test_is_installable tests/test_instances.py::test_frozen_req