code: def parse_pip_file(path):
      
      # requirement lines sorted by importance
      # also collect other pip commands
      rdev = dict()
      rnormal = []
      stuff = []
  
      try:
          with open(path) as f:
              for line in f:
                  line = line.strip()
  
                  # see https://pip.readthedocs.org/en/1.1/requirements.html
                  if line.startswith('-e'):
                      # devel requirement
                      splitted = line.split('#egg=')
                      rdev[splitted[1].lower()] = line
  
                  elif line.startswith('-r'):
                      # recursive file command
                      splitted = re.split('-r\\s+', line)
                      subrdev, subrnormal, substuff = parse_pip_file(splitted[1])
                      for k, v in subrdev.iteritems():
                          if k not in rdev:
                              rdev[k] = v
                      rnormal.extend(subrnormal)
                      result.extend(substuff)
  
                  elif line.startswith('-'):
                      # another special command we don't recognize
                      stuff.append(line)
  
                  else:
                      # ordenary requirement, similary to them used in setup.py
                      rnormal.append(line)
      except IOError:
          print(
              'Warning: could not parse requirements file "{}"!',
              file=sys.stderr
          )
  
      return rdev, rnormal, stuff
docs: Parse pip requirements file.