              requirements_file = os.path.join(pypath, req_file)
              with open(requirements_file, encoding="utf8") as req:
                  for package in req.readlines():
                      package = package.strip()
                      # parse_requirements can't handle git dependencies, so extract and then
                      # manually add to final list
                      if package and package.startswith("git+"):
                          git_requirements.append((package, []))
                          continue
                      if package and (not package.startswith(("#", "-r"))):
                          requirements.append(package)
          self.required_packages = [(pkg.name, pkg.specs)
                                    for pkg in parse_requirements(requirements)
                                    if pkg.marker is None or pkg.marker.evaluate()]
 
</s> remove             requirements_file = os.path.join(pypath, req_file)
 </s> add             requirements_file = os.path.join(pypath, "requirements", req_file) </s> remove         self.required_packages.extend(git_requirements)
 </s> add  </s> remove         git_requirements = []
 </s> add  </s> remove         with Popen(f"\"{sys.executable}\" -m pip freeze", shell=True, stdout=PIPE) as chk:
 </s> add         with Popen(f"\"{sys.executable}\" -m pip freeze --local", shell=True, stdout=PIPE) as chk:
              requirements_file = os.path.join(pypath, req_file)
              with open(requirements_file, encoding="utf8") as req:
                  for package in req.readlines():
                      package = package.strip()





                      if package and (not package.startswith(("#", "-r"))):
                          requirements.append(package)
          self.required_packages = [(pkg.name, pkg.specs)
                                    for pkg in parse_requirements(requirements)
                                    if pkg.marker is None or pkg.marker.evaluate()]
keep keep keep keep replace replace replace replace replace keep keep keep keep keep
 setup.py - python 3.9 support
    - move requirements files to dedicated folder
    - update all references to requirements files locations
    - setup.py: remove git requirements references
    - setup.py: allow running in python 3.9
    - windows/linux installers: default to python 3.9 environment
    - faceswap.py: cleaner python version check 
setup.py