code: def wheel(self, package, options=None):
          
          if self.readonly:
              raise VirtualenvReadonlyException()
          if options is None:
              options = []
          if isinstance(package, tuple):
              package = '=='.join(package)
          if not self.is_installed('wheel'):
              raise PackageWheelException((0, "Wheel package must be installed in the virtual environment", package))
          if not isinstance(options, list):
              raise ValueError("Options must be a list of strings.")
          try:
              self._execute_pip(['wheel', package] + options)
          except subprocess.CalledProcessError as e:
              raise PackageWheelException((e.returncode, e.output, package))
docs: Creates a wheel of the given package from this virtual environment,
          as specified in pip's package syntax or a tuple of ('name', 'ver'),
          only if it is not already installed. Some valid examples:
  
           'Django'
           'Django==1.5'
           ('Django', '1.5')
  
          The `options` is a list of strings that can be used to pass to
          pip.