docs: def install_python_package(self, arch, name=None, env=None, is_dir=True):
          '''Automate the installation of a Python package (or a cython
          package where the cython components are pre-built).'''
          # arch = self.filtered_archs[0]  # old kivy-ios way
          if name is None:
              name = self.name
          if env is None:
              env = self.get_recipe_env(arch)
  
          info('Installing {} into site-packages'.format(self.name))
  
          with current_directory(self.get_build_dir(arch.arch)):
              hostpython = sh.Command(self.hostpython_location)
  
              if self.ctx.python_recipe.name != 'python2legacy':
                  hpenv = env.copy()
                  shprint(hostpython, 'setup.py', 'install', '-O2',
                          '--root={}'.format(self.ctx.get_python_install_dir()),
                          '--install-lib=.',
                          _env=hpenv, *self.setup_extra_args)
              elif self.call_hostpython_via_targetpython:
                  shprint(hostpython, 'setup.py', 'install', '-O2', _env=env,
                          *self.setup_extra_args)
              else:  # python2legacy
                  hppath = join(dirname(self.hostpython_location), 'Lib', 'site-packages')
                  hpenv = env.copy()
                  if 'PYTHONPATH' in hpenv:
                      hpenv['PYTHONPATH'] = ':'.join([hppath] + hpenv['PYTHONPATH'].split(':'))
                  else:
                      hpenv['PYTHONPATH'] = hppath
                  shprint(hostpython, 'setup.py', 'install', '-O2',
                          '--root={}'.format(self.ctx.get_python_install_dir()),
                          '--install-lib=lib/python2.7/site-packages',
                          _env=hpenv, *self.setup_extra_args)
  
              # If asked, also install in the hostpython build dir
              if self.install_in_hostpython:
                  self.install_hostpython_package(arch)