docs: def install_binary_dist(self, members, virtualenv_compatible=True, prefix=None,
                              python=None, track_installed_files=False):
          """
          Install a binary distribution into the given prefix.
  
          :param members: An iterable of tuples with two values each:
  
                          1. A :class:`tarfile.TarInfo` object.
                          2. A file-like object.
          :param prefix: The "prefix" under which the requirements should be
                         installed. This will be a pathname like ``/usr``,
                         ``/usr/local`` or the pathname of a virtual environment.
                         Defaults to :attr:`.Config.install_prefix`.
          :param python: The pathname of the Python executable to use in the shebang
                         line of all executable Python scripts inside the binary
                         distribution. Defaults to :attr:`.Config.python_executable`.
          :param virtualenv_compatible: Whether to enable workarounds to make the
                                        resulting filenames compatible with
                                        virtual environments (defaults to
                                        :data:`True`).
          :param track_installed_files: If this is :data:`True` (not the default for
                                        this method because of backwards
                                        compatibility) pip-accel will create
                                        ``installed-files.txt`` as required by
                                        pip to properly uninstall packages.
  
          This method installs a binary distribution created by
          :class:`build_binary_dist()` into the given prefix (a directory like
          ``/usr``, ``/usr/local`` or a virtual environment).
          """
          # TODO This is quite slow for modules like Django. Speed it up! Two choices:
          #  1. Run the external tar program to unpack the archive. This will
          #     slightly complicate the fixing up of hashbangs.
          #  2. Using links? The plan: We can maintain a "seed" environment under
          #     $PIP_ACCEL_CACHE and use symbolic and/or hard links to populate other
          #     places based on the "seed" environment.
          module_search_path = set(map(os.path.normpath, sys.path))
          prefix = os.path.normpath(prefix or self.config.install_prefix)
          python = os.path.normpath(python or self.config.python_executable)
          installed_files = []
          for member, from_handle in members:
              pathname = member.name
              if virtualenv_compatible:
                  # Some binary distributions include C header files (see for example
                  # the greenlet package) however the subdirectory of include/ in a
                  # virtual environment is a symbolic link to a subdirectory of
                  # /usr/include/ so we should never try to install C header files
                  # inside the directory pointed to by the symbolic link. Instead we
                  # implement the same workaround that pip uses to avoid this
                  # problem.
                  pathname = re.sub('^include/', 'include/site/', pathname)
              if self.config.on_debian and '/site-packages/' in pathname:
                  # On Debian based system wide Python installs the /site-packages/
                  # directory is not in Python's module search path while
                  # /dist-packages/ is. We try to be compatible with this.
                  match = re.match('^(.+?)/site-packages', pathname)
                  if match:
                      site_packages = os.path.normpath(os.path.join(prefix, match.group(0)))
                      dist_packages = os.path.normpath(os.path.join(prefix, match.group(1), 'dist-packages'))
                      if dist_packages in module_search_path and site_packages not in module_search_path:
                          pathname = pathname.replace('/site-packages/', '/dist-packages/')
              pathname = os.path.join(prefix, pathname)
              if track_installed_files:
                  # Track the installed file's absolute pathname.
                  installed_files.append(pathname)
              directory = os.path.dirname(pathname)
              if not os.path.isdir(directory):
                  logger.debug("Creating directory: %s ..", directory)
                  makedirs(directory)
              logger.debug("Creating file: %s ..", pathname)
              with open(pathname, 'wb') as to_handle:
                  contents = from_handle.read()
                  if contents.startswith(b'#!/'):
                      contents = self.fix_hashbang(contents, python)
                  to_handle.write(contents)
              os.chmod(pathname, member.mode)
          if track_installed_files:
              self.update_installed_files(installed_files)